发表于: 2017-07-14 22:34:55
1 1153
今天学习了简单工厂设计模式和工厂设计模式,重新理解了DAO的意义,初步了解了JdbcTemplate和Mybatis的概念。
一、工厂设计模式
工厂设计模式的目的:降低调用者和实现者之间的耦合度。当需求发生变化(增加或改变)时,不改变原有代码的结构。
1.简单工厂设计模式:
优点:降低了调用者和实现者之间的耦合度。当引入一个新的实现类型时,只需要增加一个实现类,然后修改工厂类即可。
缺点:只适用于层次结构较为简单的情况。如果可能的实现类型很多,工厂类中的逻辑会很复杂,可读性差。
2.工厂设计模式
优点:进一步降低了调用者和实现者之间的耦合度。当引入一个新的实现类型时,只需要增加一个实现类,然后增加一个对应的工厂类即可。不需要修改已经存在的代码。
二、DAO:
DAO是基于工厂设计模式的一种操作数据的思想。
DAO分离了业务逻辑和数据访问逻辑,让业务逻辑通过DAO访问数据。
当数据操作方式变化时,只需要增加一个新的数据操作方式和一个工厂类即可。
一个完整的DAO包括:【工厂模式】
(1)DAO工厂接口:定义DAO工厂类中方法规范的接口(有哪些方法、返回值、参数列表等)
(2)DAO工厂类:直接被业务逻辑所调用,创建出业务逻辑需要的数据访问类的实例。
(3)数据访问接口:定义数据访问类中方法规范的接口(有哪些方法、返回值、参数列表等)
(4)数据访问类:直接操作数据,对象创建于对应的DAO工厂类中。在业务逻辑中以类似
"数据访问接口 变量名 = DAO工厂对象.获取数据访问对象();"的形式获取。
(5)数据传递对象:被操作的数据对象,对应数据库中的表。
如果数据访问类型不多,可以将这个体系简化:【简单工厂模式】
不需要DAO工厂接口,直接在DAO工厂类中定义静态方法,根据业务逻辑传递的参数,创建相应的数据访问对象,来操作数据。
三、JdbcTemplate
JDBCTemplate是Spring对jdbc的封装,但sql语句还是要自己写。
写sql语句的结果:增加操作灵活性,但只能针对单数据库。(当然,用DAO思想可以将每个数据库的操作方式作为一个数据访问类)
四、Mybatis
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架,消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
明天学习JdbcTemplate,并编写DAO连接数据库,进行增删改查操作。
疑问:
虽然知道spring、Mybatis是框架,但不知道它们的本体是什么(是不是一系列jar包?)。要用框架中的内容(比如JdbcTemplate)的话,是要导入相关的jar包吗?还是需要下载相关的软件?
评论