MyBatis3用户指南中文版_.pdf
mybatis-3.1.1-bundle.zip
mybatis-spring-1.0.0-bundle.zip
搭建第一个mybatis.zip
目录结构
③ 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;
<?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>
<?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>
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 已省略 }
② 测试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(); } }