MyBatis基础学习笔记--摘录

1、MyBatis是什么?

MyBatis源自于IBatis,是一个持久层框架,封装了jdbc操作数据库的过程,使得开发者只用关心sql语句,无需关心驱动加载、连接,创建statement,手动设置参数,结果集检索等jdbc底层操作。

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

MyBatis的数据源,事务属性,以及映射文件的索引xml配置:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 <configuration>
 4     <environments default="development">
 5         <environment id="development">
 6             <transactionManager type="JDBC" />
 7             <!-- 配置数据库连接信息 -->
 8             <dataSource type="POOLED">
 9                 <property name="driver" value="com.mysql.jdbc.Driver" />
10                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
11                 <property name="username" value="root" />
12                 <property name="password" value="root" />
13             </dataSource>
14         </environment>
15     </environments>
16 
17     <mappers>
18         <!-- 注册userMapper.xml文件, 
19         userMapper.xml位于com.test.mapping这个包下,所以resource写成com/test/mapping/userMapper.xml-->
20         <mapper resource="com/test/mapping/userMapper.xml"/>
21     </mappers>
22 
23 </configuration>

映射文件xml配置:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
 4 例如namespace="com.test.mapping.userMapper"就是com.test.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
 5  -->
 6 <mapper namespace="com.test.mapping.userMapper">
 7     <!-- 
 8         根据id查询得到一个user对象
 9      -->
10     <select id="getUser" parameterType="int" 
11         resultType="com.test.domain.User">
12         select * from users where id=#{id}
13     </select>
14 </mapper>

2.MyBatis架构图

MyBatis配置:包括全局配置和映射文件配置。全局配置文件中包含了数据库连接信息、事务管理、映射文件索引。

MyBatis根据配置文件创建SqlSeesionFactory:SqlSeesionFactory

1 // mybatis的配置文件
2 String resource = "conf.xml";
3 // 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
4 InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
5 // 构建sqlSession的工厂
6 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

和使用SqlSeesionFactory创建SqlSeesion:

 1 package org.apache.ibatis.session;
 2 
 3 import java.sql.Connection;
 4 
 5 public interface SqlSessionFactory {
 6 
 7   SqlSession openSession();
 8 
 9   SqlSession openSession(boolean autoCommit);
10   SqlSession openSession(Connection connection);
11   SqlSession openSession(TransactionIsolationLevel level);
12 
13   SqlSession openSession(ExecutorType execType);
14   SqlSession openSession(ExecutorType execType, boolean autoCommit);
15   SqlSession openSession(ExecutorType execType, TransactionIsolationLevel level);
16   SqlSession openSession(ExecutorType execType, Connection connection);
17 
18   Configuration getConfiguration();
19 
20 }
原文地址:https://www.cnblogs.com/xiangleili/p/8668562.html