目录
1,DAO诞生的背景:以前我们是把数据库的操作代码编写到客户端里,
2,解决:封装思想(联想到集合—将数据存储到内存,集合中封装增删改查的操作)
4):建立dom.impl包和dao实现类:StudentDAOImpl;
5):根据DAO接口创建DAO测试类:StudentDAOTest;
6):编写dao实现类[StudentDAOImpl]中每一个DAO方法的实现;
✿ 配置文件:xml适合有层次结构的配置;而properties就只要符合键值对存储即可
一、DAO(Data Access Object)
是一个数据访问接口,顾名思义就是与数据库打交道,封装了数据的增删改查(CRUD)操作。【夹在逻辑与数据库资源中间。】
1,DAO诞生的背景:以前我们是把数据库的操作代码编写到客户端里,
①跟业务代码混杂在一起;②而且每次操作数据库时都需要重复书写代码。
2,解决:封装思想(联想到集合—将数据存储到内存,集合中封装增删改查的操作)![](https://i-blog.csdnimg.cn/blog_migrate/bc2439f39118e5a570e7f933234af54f.png)
3,DAO封装了数据的增删改操作,数据访问接口。
■ 举例:save()方法的设计:void save(String name, int age);
当需要保存的数据过多时,此时save方法的参数就很多,解决方法----封装思想。
4,DAO设计规范:
❀5,开发步骤:【记得准备工作是拷贝java驱动jar包】
1):先建立一张表,存储信息:t_student;2):建立domain包和domain类:Student;3):建立dao包和dao接口:IStudentDAO;4):建立dom.impl包和dao实现类:StudentDAOImpl;5):根据DAO接口创建DAO测试类:StudentDAOTest;6):编写dao实现类[StudentDAOImpl]中每一个DAO方法的实现;7):每编些一个DAO方法的实现,就测试该功能是否正确; |
单元测试 JUnit Test
右键接口(或类) -》 new -》 JUnit Test Case【或者先选择Other,然后输入JUnit Test Case】-》选next【勾选需要测试的方法】-》让它自动选中单元测试 -》finish
1、面向接口编程:接口变量 = new 实现类();2、DAO对象起名为xxxDAO,xxx为对象名称,例如 studentDAO。■ 举例:private IStudentDAO studentDAO = new StudentDAOImpl();关于单元测试的一些细节:
① 方法必须是public修饰;② 该方法上必须要贴有@Test标签 |
✿ 配置文件:xml适合有层次结构的配置;而properties就只要符合键值对存储即可
□ Source Folder图标:放到该文件下面的直接编译成 .classpath 下面【默认classpath是bin下】,则配置资源(.properties文件)编译到 classpath路径【bin目录下】,通过classLoader读取 |
✿6,语句对象PreparedStatement 和Statement 的比较:
(通过对比,法相PreparedStatement更加优秀,以后就使用它即可)
■ PreparedStatement 相对于Statement的优势:
1):拼接SQL上,操作更加简单;
2):性能会更加高效,但是取决于数据库服务器是否支持。【Mysql不支持,Oracle支持】
3): 安全性能更高,防止SQL注入(举例登录操作)。
❀ 如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦,ღ( ´・ᴗ・` )比心。