一、Mybatis应用示例
咱们先先一个简略的例子,对Mybatis应用有一个直观的意识。
1.新建mybatis配置文件mybatis-config.xml
<?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> <!-- 环境,能够配置多个,default:指定采纳哪个环境 --> <environments default="test"> <!-- id:惟一标识 --> <environment id="test"> <!-- 事务管理器,JDBC类型的事务管理器 --> <transactionManager type="JDBC" /> <!-- 数据源,池类型的数据源 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://xxx/testdb" /> <property name="username" value="xxx" /> <property name="password" value="xxx" /> </dataSource> </environment> </environments> <mappers> <mapper resource="UserMapper.xml" /> </mappers></configuration>
2.生成model文件User.java和配置文件UserMapper.xml
package last.soul.model;import lombok.Data;@Datapublic class User { private Long id; private String name; private String nickName; private Integer age; private Byte sex;}
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="last.soul.mapper.UserMapper"> <resultMap id="BaseResultMap" type="last.soul.model.User"> <id column="id" jdbcType="BIGINT" property="id" /> <result column="name" jdbcType="VARCHAR" property="name" /> <result column="nick_name" jdbcType="VARCHAR" property="nickName" /> <result column="age" jdbcType="INTEGER" property="age" /> <result column="sex" jdbcType="TINYINT" property="sex" /> </resultMap> <select id="selectById" parameterType="java.util.Map" resultType="last.soul.model.User"> select * from user where id = #{id} </select></mapper>
3.编写测试代码UserTest.java
public class UserTest { @Test public void test() throws IOException { String resource = "file/mybatis-config.xml"; // 读取配置文件 InputStream inputStream = Resources.getResourceAsStream(resource); // 构建sqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取sqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); //构建参数 Map map=new HashMap<>(); map.put("id",1); //执行sql,并返回后果 User user=sqlSession.selectOne("last.soul.mapper.UserMapper.selectById",map); Assert.assertTrue(user.getId()==1); }}
运行胜利,由下面代码看出,Mybatis执行流程次要有以下几步:
1.读取配置文件。
2.构建sqlSessionFactory。
3.获取sqlSession。
4.执行sql,并返回后果。
二、Mybatis整体架构
Mybatis整体架构分三层,别离是根底反对层、外围解决层和接口层。下面的第1步属于根底反对层的资源加载模块,第2,3步属于接口层,第4步属于外围解决层。
后续的文章会详解每个模块。