Dao模式
回顾
-
增删改
-
连接对象
-
执行对象
-
-
查
-
连接对象
-
执行对象
-
结果集
-
项目结构---包命名的规范
-
com.zking.util:提供工具类和辅助方法,增强代码的复用性和可维护性。(帮助类)
-
com.zking.pojo:存放实体类,表示业务对象,确保数据的一致性和完整性。
-
com.zking.dao:负责数据访问操作,实现与数据库的交互,确保数据的持久化。(增删改查的方法)
-
com.zking.test:编写测试用例,确保代码的正确性和系统的稳定性。(用户输入)
数据库帮助类DBHelp编写
-
加载驱动
static {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();} }
-
获得连接
public static Connection getCon() {Connection con = null;try {con = DriverManager.getConnection("jdbc:mysql: / localhost:3306/数据库名? serverTimezone=GMT", "用户名","密码");} catch (Exception e) {e.printStackTrace();}return con; }
-
关闭资源
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {try {if (con != null)con.close();if (ps != null)ps.close();if (rs != null)rs.close();} catch (Exception e) {e.printStackTrace();} }
实体类编写
-
实体类(Plain Old Java Object,简称 POJO)是一种简单的 Java 对象,用于表示应用程序中的业务对象或数据模型。
-
实体类通常与数据库中的表相对应,每个属性代表表中的一个字段。
-
实体类的主要目的是封装数据,并提供对这些数据的访问方法(即 getter 和 setter 方法)。
1. 属性(Fields):实体类的属性通常对应于数据库表中的字段。这些属性可以是基本数据类型(如 int、double、String 等)或复杂数据类型(如 Date、List 等)。属性通常是私有的(private),以确保封装性。 2. 构造函数:无参构造函数:通常提供一个无参构造函数,以便在需要时创建空的对象实例。带参数的构造函数:提供一个或多个带参数的构造函数,用于在创建对象时初始化属性。 3. Getter 和 Setter 方法 4. 重写 toString 方法:方法可以方便地输出对象的信息,便于调试和日志记录。
数据操作类 MovieDao编写---重复的代码写到一个方法里面
private Connection con; private PreparedStatement ps; private ResultSet rs; //增加 public int add(Movie m) {try {con = DBHelper.getCon();String sql="";ps=con.prepareStatement(sql);return ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}final{ps.close(con,ps,rs);}return 0; } //查询多个 public List<Movie> query() {List<Movie> list=new arrayList();try {con = DBHelper.getCon();String sql = "";ps = con.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()) {}} catch (Exception e) {e.printStackTrace();}final{ps.close(con,ps,rs);}return list; } //查询单个 public Movie query(int a) {try {con = DBHelper.getCon();String sql = "select * from 表名 where id = ?";ps = con.prepareStatement(sql);rs = ps.executeQuery();ps.setInt(1,a);if(rs.next()) {}} catch (Exception e) {e.printStackTrace();}final{ps.close(con,ps,rs);}return list; }