MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
(1)所需主要jar包(可忽略版本)
mybatis-3.3.0.jar -- MyBatis
mysql-connector-java-5.1.7-bin.jar -- mysql驱动
(2)搭建测试工程,例如

(3)MyBatis配置文件说明
mybatiseConfig.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>
<!-- 注册实体类 -->
<typeAliases>
<typeAlias alias="UserInfo" type="com.demo.model.UserInfo"/>
</typeAliases>
<!-- 数据库配置 -->
<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://localhost:3306/demo" />
<property name="username" value="root" />
<property name="password" value="ymb@123" />
</dataSource>
</environment>
</environments>
<!-- 注册sql映射文件 -->
<mappers>
<mapper resource="com/demo/dao/mapper/UserInfo.xml"/>
</mappers>
</configuration>
(4)sql映射文件配置说明
UserInfo.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.demo.dao.UserMapper">
<!-- 根据id获取用户信息 -->
<select id="selectUserInfo" parameterType="int" resultType="UserInfo">
SELECT
id AS id,
name AS userName,
pass_word AS passWord,
email AS email
FROM
tbl_demo_user_info
WHERE id = #{id}
</select>
<!-- 获取所有用户信息 -->
<select id="selectUserInfoList" resultType="UserInfo">
SELECT
id AS id,
name AS userName,
pass_word AS passWord,
email AS email
FROM
tbl_demo_user_info
</select>
</mapper>
(5)实体类
UserInfo.java
package com.demo.model; import lombok.Data; /** * 用户信息实体类 * * @author Super Yu * @version 2017.03.22 */ @Data public class UserInfo { private int id; private String userName; private String passWord; private String email; // @Override // public String toString() { // return "UserInfo [id=" + id + ", userName=" + userName + ", passWord=" + passWord + ", email=" + email + "]"; // } }
(6)测试类
TestTestMyBatis.java
package com.demo.test; import java.io.IOException; import java.io.Reader; import java.util.List; 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 com.demo.model.UserInfo; public class TestMyBatis { public static void main(String[] args) { //mybatis配置文件路径 String resource = "conf/mybatiseConfig.xml"; Reader reader = null; SqlSession session; try { //加载mybatis配置文件 reader = Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } //构建sqlSession的工厂 SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader); //创建能执行映射文件中sql的sqlSession session = sqlMapper.openSession(); //按条件查询 UserInfo userInfo = session.selectOne("selectUserInfo", 1); //查询所有 List<UserInfo> userInfoList = session.selectList("selectUserInfoList"); System.out.println(userInfo.toString()); System.out.println(userInfoList.toString()); } }
(7)结果输出
UserInfo(id=1, userName=蔚, passWord=123456, email=yy@163.com)
[UserInfo(id=1, userName=蔚, passWord=123456, email=yy@163.com), UserInfo(id=2, userName=yu1, passWord=123, email=123@.com), UserInfo(id=3, userName=yu2, passWord=123456, email=yy@163.com)]
(8)数据库

原文:http://www.cnblogs.com/super-yu/p/7191257.html