1. myBatis
(1)myBatis是什么?
是一个开源的持久层框架。
注:myBatis底层仍然是jdbc。
(2)编程步骤
step1. 导包。
mybatis,ojdbc,junit。
step2. 添加配置文件。
注:配置文件主要包含连接池的配置和映射文件的位置。
step3. 写实体类。
注:属性名必须跟表的字段名一样(大小写不区分)。
step4. 写映射文件。
注:映射文件主要包含的是sql语句。
step5. 使用SqlSession提供的方法来访问数据库。
(3)基本原理
(4)返回Map类型的结果
myBatis会将查询到的记录放到一个Map对象里面(会以字段名为key, 字段值作为value),然后再将Map对象里面的数据放到实体对象里面。
(5)解决表的字段名与实体类的属性名不一致的情况
方式一:使用别名来解决。
方式二: 使用ResultMap来解决。
(6)Mapper映射器
Mapper映射器是什么?
是符合映射文件要求的接口。
注:myBatis会依据该接口的要求生成一个相应的实例。
具体要求:
a. 方法的名称必须与sql的id一样。
b. 方法的返回值类型必须与sql的resultType一样。
c. 方法的参数类型必须怀sql的parameterType一样。
d. 映射文件的namespace必须等于该接口的完整的名称。
如何使用?
step1. 先按照映射文件要求写好相应的接口,比如EmployeDAO。
step2. 调用SqlSession的方法获得符合映射器要求的对象。
代码示例:
src/main/java
dao (Mapper映射器的接口类)
package dao; import java.util.List; import java.util.Map; import entity.Employee; import entity.Employee2; /** * Mapper映射器 * */ public interface EmployeeDAO { public void save(Employee e); public List<Employee> findAll(); public Employee findById(int id); public void modify(Employee e); public void delete(int id); public Map findById2(int id); public Employee2 findById3(int id); }