简介:
Mybatis是一个持久层的框架,他的历史我们就不多谈了。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
Mybatis学起来还是很简单的。我们来看一下他的框架。
1.Mybatis的全局配置文件是SqlMapConfig,我们通过SqlMapConfig.xml加载映射文件,以及配置一些全局的比如(数据库连接、事务等)
2.上面的SQLMapConfig.xml文件加载的映射文件,里面写了我们要执行的sql语句。
3.我们通过一个Mapper接口,来调用或者说加载我们的映射文件。
4.我们执行的时候,是通过Mybatis封装的SQLSessionFactoryBuilder来构建SQLSessionFactory,SQLSessionFactory构建SqlSession的,然后,通过SqlSession去调用内部的Executor执行器去操作数据库,而执行器通过底层封装的对象mapped statement去操作数据库。
实战:
上面说的可能有些云里雾里了,让我们来敲一个小程序吧。
1.首先准备一个数据库,创建一个最简单的即可,比如:
Create TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(50) DEFAULT NULL,
`userAge` int(11) DEFAULT NULL,
`userAddress` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
2.项目结构如下:
3.配置SqlMapConfig.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>
<properties resource="db.properties"></properties>
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
<setting name="cacheEnabled" value="true"/>
</settings>
<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
</configuration>
2.创建pojo类(类似于实体类)
private int id;
private String username;
private String sex;
private Date birthday;
private String address;
3.创建User.xml
<mapper namespace="test">
<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
SELECT * FROM USER WHERE id=#{id}
</select>
</mapper>
4.在SqlMapConfig.xml中加载映射文件
<mappers>
<mapper resource="sqlmap/User.xml"/>
</mappers>
5.写测试方法
Mybatis接触起来,还是很简单的。在后面我们再进行更加深入的学习。