一、软件分层开发:持久层
●Java EE三层模型 和 MVC模型
Java EE三层模型和MVC模型属于两种分层模型。
JavaE中最经典的是三层模型。包含表示层(Presentation)、业务逻辑层(Business Logic)、持久层(Persistence)MVC模型也是三层模型。包含模型层(Model)、视图层(View)、控制层(Controller)。
•Java EE三层模型和MVC模型最主要的区别是:
①JavaE三层模型中没有控制层,MVC中有控制层。
②Java E三层模型中业务模型层是单独一部分,就是service层,MVC中模型层包含:业务模型(业务逻辑层)和数据模型(实体类,持久层)。
③Java E三层模型中持久层就是dao层。MVC中虽然持久层在项目中是单独的包,但是在MVC概念中持久层属于数据模型中。
•目前Java中最常见的六层模型
①视图层。简单点说就是页面,可以是客户端页面技术,也可以是服务端页面技术。例如:HTML、ISP。
②控制层。处于业务层和视图层之间,根据业务层结果,控制视图层显示。例如:Servlet。
③实体层。就是实体类,负责封装数据,在各个层之间进行数据传递的载体。常见包名:domain、entity等。
④业务逻辑层。专门编写业务逻辑代码的一层。
⑤数据持久层/数据访问层。负责编写调用数据库的代码。具体技术:JDBC、MyBatis等。
⑥数据源层。一些持久化工具,负责存储数据的。例如:MySQL、Oracle等。
●体现在项目中就是各个包(package),不同包中编写实现不同功能代码的类。
①控制层:com.bjsxt.controller。
②持久层:com.bjsxt.dao。
③实体层:com.bjsxt.entity。
④业务逻辑层:com.bjsxt.service。
⑤视图层:indexjsp。
⑥数据源层:项目中没有,MySQL为数据源层。
●Java中访问数据库的技术叫做IDBC。IDBC是一组固定套路的代码。每次访问数据库都需要按照下面步骤进行执行:
①加载驱动
②创建连接
③SQL预处理
④执行SQL
⑤处理结果
⑥释放资源,关闭连接
●常见的持久层框架
①MyBatis:目前使用最多的持久层框架。
②Hibernate:零SQL的持久层框架,N年前使用最多的持久层框架。
③Spring Data JPA:目前个别使用的持久层框架。是Spring Data家族中的一员。是对PA (Java Persistence API,DK5.0)的封装。
④ Spring Data JDBC:Spring Data中的二级项目,类似Spring Data JPA,但框架的功能要比Spring Data JPA少一些。
二、MyBatis介绍
MyBatis是持久层ORM框架,它支持自定义SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置,把数据库和Java POJO(Plain Old Java Objects,普通老式Java对象)进行映射。
●ORM
ORM(Object/Relation Mapping):对象/关系 映射。是一种解决数据库发展和面向对象编程语言发展不匹配问题而出现的技术。
在ORM中强调以下几点:
①ORM技术的具体实现可以认为是一个整体。
②在使用ORM时,只需要把对象交给ORM,不需要去编写拆卸对象的代码,而是由ORM把对象中属性值取出放入到SQL
(3)SQL执行结果后,如果执行的是查询,会由ORM把从数据库查询到的结果,转换为对象。程序员从ORM获取到的就是转换后的对象。
所以ORM技术相当于一个转换器,是面向对象语言和数据库之间的纽带。
●创建MyBatis全局配置文件
在项目的src/main/resources目录下新建mybatis.cfg.xml文件。并在配置文件中填写下面内容。
1.文件名称为MyBatis官方示例时配置文件名。平时所说的规范:官方怎么写,那就是规范。所以从规范角度上也叫mybatis.cfg.xml。这个文件的名称是自定义的。
2. 无论如何封装了DBC,数据库连接的四个参数是无法封装的。
3