什么是MyBatis?
MyBatis 世界上流行最广泛的 SQL 映射框架,由 Clinton Begin 在 2002 年创建,其后,捐献给了 Apache基金会,成立了 iBatis 项目。2010 年 5 月,将代码库迁致 Google Code,并更名为 MyBatis。
关于以前的版本,请访问 http://ibatis.apache.org/
关于更名后最新的版本,请访问:http://code.google.com/p/mybatis/
关于更名后最新的版本,请访问:http://code.google.com/p/mybatis/
MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的 JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的 XML 和注解来配置和映射基本数据类型 、Map 接口和 POJO 到数据库记录。
MyBatis入门程序
- 编写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>
<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/mybatis?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/icss/dao./UserMapper.xml"/>
</mappers>
</configuration>
注意:
在xml文件中有以下几类字符要进行转义替换:
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
- 映射文件UserMapper.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="com.icss.dao.UserMapper" >
<resultMap id="BaseResultMap" type="com.icss.po.User" >
<id column="userId" property="userid" jdbcType="INTEGER" />
<result column="userName" property="username" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
userId, userName
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from tbl_user
where userId = #{userid,jdbcType=INTEGER}
</select>
</mapper>
- 编写测试类TestMybatis.java
package com.icss;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import com.icss.po.User;
public class TestMybatis {
@Test
public void findUserById() throws IOException {
//mybatis配置文件
String resourse = "SqlMapConfig.xml";
//获取配置文件流
InputStream is = Resources.getResourceAsStream(resourse);
//创建会话工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//通过会话工厂获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("com.icss.dao.UserMapper.selectByPrimaryKey", 1);
System.out.println(user);
sqlSession.close();
}
}
结果:User [userid=1, username=Mr_Li]