一、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;
@Data
public 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步属于外围解决层。
后续的文章会详解每个模块。
发表回复