1、Mybatis将连接池等在XML配置中设置,通过接口使得使用者可以更关注业务代码:
例如
public class Test {
@org.junit.Test
public void TestDemo() throws IOException {
//初始化mybatis配置环境
String resource = "mybatis.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//会话打开
SqlSession session = factory.openSession();
List<Course> list = session.selectList("coursesList");
for(Course c:list){
System.out.println(c);
}
session.close();
}
}
解读:
- String resource = “mybatis.xml”;从mybatis.xml取到数据源并转为流对象
- 由工厂构建类从IO流中构建出sql回话工厂
- 由工厂类构建回话并打开
- 调用session.selectList/Map…接受制定对象的结果(JavaBean和sql中对象必须一致)
2、再来看看mybatis.xml,相当于JDBC和连接池配置+mapper.XML入口
<configuration>
<!--
environments 主要用于进行数据源的配置
可以配置多个数据源~ 通过default属性来指定当前项目运行过程中使用的是哪个数据源
-->
<environments default="development">
<!--
environment 用于配置一个具体的独立的数据源
id属性用于给当前数据源定义一个名称,方便我们的项目指定
-->
<environment id="development">
<!--
transactionManager用于配置事务管理,默认情况下使用的是JDBC事务管理
-->
<transactionManager type="JDBC"/>
<!--使用数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<!-- 映射配置文件的路径-->
<mappers>
<!-- mapper主要配置引入某一个具体的映射文件,resource进行路径方式的引入 -->
<mapper resource="mapper/courseMapper.xml"/>
</mappers>
</configuration>
3、courseMapper.XML配置,是JavaBean和sql对象映射的配置,以及sql接口配置
<!-- namespace 命名空间
通常情况,命名空间默的值,就是当前操作实体类的全名称
-->
<mapper namespace="com.zfy.entity.Course">
<select id="coursesList" resultType="com.zfy.entity.Course">
select * from course;
</select>
</mapper>