MyBatis总的流程
首先加载Mybatis-config.xml总配置文件,读取数据库配置,加载扫描mapper文件,mapper文件中编写sql命令,编写结果集映射,type 写返回值类型,namespace指向dao层接口路径。
dao层编写接口,方法名对应mapper中sql命令标签id,service层实现接口,通过工具类MyBatisUiti连接数据库,获取Sqlsession工厂对象(类似jdbc里的Connection),通过反射机制(代理模式)创建dao层对象,调用dao层方法,执行完毕关闭连接,测试类创建service对象直接调用方法。
详解
Mybatis-config.xml总配置文件,包含数据源的配置,用户名 密码 数据库地址,如要开启缓存,也在此文件中加入<settings>标签,<mapper>标签内是指向mapper文件路径。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
</transactionManager>
<!-- 数据源的配置,URL,用户名 密码 数据库 -->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/gxy/dao/test1Mapper.xml"/>
<mapper resource="com/gxy/dao/StudentMapper.xml"/>
<!--<mapper resource="com/gxy/dao/TeacherMapper.xml"/>-->
<!--<mapper resource="com/gxy/dao/SubjectMapper.xml"/>-->
</mappers>
</configuration>
mapper文件,包含sql命令,结果集映射,启动缓存要加入<cache></cache>标签,在联表查询时,要在实体类中加入对应表的实体类的属性,一对一查询时,结果集映射加入<association>标签,标签内写另一表的映射,javaType属性填写实体类路径,一对