0. 下载
mybatis-3.1.1-bundle.zip
mybatis-spring-1.0.0-bundle.zip
注: junit4 需自行导入
目录结构
1. 准备
① mybatis-3.1.1-bundle.zip② mysql-connector-java-5.1.21-bin.jar
③ MySQL数据库
-- drop database mybatis;
CREATE DATABASE mybatis;
USE mybatis;
CREATE TABLE USER
(
id VARCHAR(36) PRIMARY KEY ,
NAME VARCHAR(64) ,
address VARCHAR(128)
)
INSERT INTO USER (id, NAME, address)
VALUES("0001", "zhangsan", "Wuhan");
INSERT INTO USER (id, NAME, address)
VALUES("0002", "lisi", "Shanghai");
SELECT * FROM USER;
2. 参考
文档 : mybatis-3.1.1 中自带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>
<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/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 映射文件的位置 -->
<mapper resource="com/hehe/mybatis/domain/User.xml" />
</mappers>
</configuration>
② 映射文件--User.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.hehe.mybatis.domain.User">
<!-- 根据ID查询User -->
<!--
id: 当前sql语句的唯一标识 ,namespace+SQL-id 唯一标识一条SQL
parameterType: SQL语句中的参数类型, 即"#{id}"的类型, 可写成java.lang.String
resultType: 结果类型(返回值类型)
-->
<select id="selectUserById" parameterType="string" resultType="com.hehe.mybatis.domain.User">
select * from user where id = #{id}
</select>
<select id="selectAllUsers" resultType="com.hehe.mybatis.domain.User">
select * from user
</select>
</mapper>
4. 实体-- User
package com.hehe.mybatis.domain;
public class User {
private String id;
private String name;
private String address;
@Override
public String toString() {
return "id=" + id + "\tname="+name+"\taddress="+address;
}
// set / get 已省略
}
5. 测试
① 测试MyBatis是否能启动② 测试SQL
package com.hehe.mybatis.test;
import java.io.InputStream;
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 org.junit.Before;
import org.junit.Test;
import com.hehe.mybatis.domain.User;
public class UserTest {
SqlSessionFactory sqlSessionFactory = null;
@Test @Before
public void testInitMyBatis() throws Exception {
// 装载总配置文件
String resource = "sqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
System.out.println(sqlSessionFactory);
}
/*
<select id="selectUserById" parameterType="string" resultType="com.hehe.mybatis.domain.User">
select * from user where id = #{id}
</select>
*/ @Test public void testSelectUserById() throws Exception {
SqlSession session = sqlSessionFactory.openSession();
// namespace + SQL-id 唯一标识一条SQL
// namespace : com.hehe.mybatis.domain.User
// SQL-id : selectUserById
User user = session.selectOne("com.hehe.mybatis.domain.User.selectUserById", "0001");
System.out.println(user);
session.close();
}
/*
<select id="selectAllUsers" resultType="com.hehe.mybatis.domain.User">
select * from user
</select>
*/ @Test public void testSelectAllUsers() throws Exception {
SqlSession session = sqlSessionFactory.openSession();
// namespace + SQL-id 唯一标识一条SQL
// namespace : com.hehe.mybatis.domain.User
// SQL-id : selectUserById
List<User> users = session.selectList("com.hehe.mybatis.domain.User.selectAllUsers");
for (User user : users) {
System.out.println(user);
}
session.close();
}
}