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; }