mybatis介绍(一)

什么是mybatis

MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除 了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索。MyBatis可以使用简单的 XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

每一个MyBatis的应用程序都以一个SqlSessionFactory 对象的实例为核心。SqlSessionFactory 对 象的 实例 可以 通 过SqlSessionFactoryBuilder 对 象 来获 得 。SqlSessionFactoryBuilder 对象可以通过XML配置文件,或从以往使用惯例中准备好的Configuration类实例中来构建SqlSessionFactory对象。 

备注:mybatis指的是ibatis3,它和ibatis2有很大的区别。mybatis3需要jdk1.5以上的支持,因为其中增加了注解和泛型。

从XML中构建SqlSessionFactory对象

从XML中构建SqlSessionFactory实例,建议使用类路径下的资源文件来配置。

String resource = "Configuration.xml"; 

Reader reader = Resources.getResourceAsReader(resource); 

sqlMapper = new SqlSessionFactoryBuilder().build(reader);

XML配置文件的内容包含对mybatis系统的核心配置,包含获取数据库连接实例的数据源和决定事务范围和控制的事务管理器。简单实例如下:写道

<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test1"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>

在XML中还有很多的信息可以配置,以上实例只是指出最关键的部分。

从SqlSessionFactory中获取sqlsession

现在已经知道了如何获取SqlSessionFactory对象了,我们可以通过代码

 写道
SqlSession session = sqlMapper.openSession();
 

来获得SqlSession的实例。

SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法。我们可以用SqlSession对象实例来直接执行已经映射的SQL语句。

SqlSession session = sqlSessionFactory.openSession(); 
try { 
BlogMapper mapper = session.getMapper(BlogMapper.class); //映射BlogMapper接口的实现
Blog blog = mapper.selectBlog(101); 
} finally { 
session.close(); 
}
 

在通过XML文件创建SqlSessionFactory时,在XML文件中,配置了一个基于XML的映射语句

<mappers> 
<mapper resource="org/mybatis/example/BlogMapper.xml"/> 
</mappers> 

 BlogMapper.xml代码如下

<?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="org.mybatis.example.BlogMapper"> 
<select id="selectBlog" parameterType="int" resultType="Blog"> 
select * from Blog where id = #{id} 
</select> 
</mapper>
 

猜你喜欢

转载自dejazhan.iteye.com/blog/1693344