总体流程
- 1.根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象
- 2.sql映射文件;配置了每一个sql,以及sql的封装规则等
- 3.将sql映射文件注册在全局配置文件中
- 4.写代码
- 1)根据全局配置文件得到SqlSessionFactory
- 2)使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查,一个sqlSession就是代表和数据库的一次会话,用完关闭
- 3)使用sql的唯一标志来告诉MyBatis执行哪个sql,sql都是保存在sql映射文件中
maybatis 依赖:
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>x.x.x</version>
</dependency>
mybatis 配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><!--将我们写好的sql映射文件注册到全局配置文件中--><mappers><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>
- 根据xml配置文件(全局配置文件)创建一个SqlSessionFactoryBuilder对象
public SqlSessionFactory getSqlSessionFactory() throws IOException {String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inputStream);}
- 获取sqlSession对象实例,能直接执行已经映射的sql语句
//1.获取sqlSessionFactory对象SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();//2.获取sqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession();
sql映射文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
try {Blog blog = sqlSession.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
}finally
{
sqlSession.close();
}
如果数据库和实体类的数据名称不一样,可以使用起别名的方法
<select id="selectBlog" resultType="Blog">
select id,last_name lastName,email,gender from Blog where id = #{id}
</select>