1.项目结构搭建
2.相关依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
3.创建实体类
package com.kgc;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 8104961490512068314L;
private int id;
private String name;
private String dept;
private String phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", dept='" + dept + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
4.创建Mapper
package com.kgc.mapper;
import com.kgc.User;
public interface UserMapper {
User getUserById(Integer id);
}
5.资源文件相关
<?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.kgc.mapper.UserMapper">
<!-- 自定义封装规则 -->
<resultMap id="userMap" type="User">
<id property="id" column="id" javaType="java.lang.Integer"></id>
<result property="name" column="name" javaType="java.lang.String"></result>
<result property="dept" column="dept" javaType="java.lang.String"></result>
<result property="phone" column="phone" javaType="java.lang.String"></result>
</resultMap>
<select id="getUserById" parameterType="int" resultMap="userMap">
select * from `user` where id = #{id}
</select>
</mapper>
<?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>
<!--引用properties文件-->
<properties resource="mysql.properties"></properties>
<typeAliases>
<typeAlias alias="User" type="com.kgc.User"/>
</typeAliases>
<!-- 配置mybatis多环境,default可以快速切换到某个具体环境 -->
<environments default="development">
<!--配置一个具体的环境信息,id是当前环境的唯一标识-->
<environment id="development">
<!-- 配置事务管理器:type表示事务管理器的类型 -->
<transactionManager type="JDBC"/>
<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- UNPOOLED 表示不支持数据源连接池 -->
<!-- JNDI 表示支持外部数据源连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--指定MyBatis映射文件的位置-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
jdbc.url=jdbc:mysql://localhost:3306/mybatis_user
jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=kgc
6.测试
package com.kgc;
import com.kgc.mapper.UserMapper;
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 java.io.Reader;
/**
* Unit test for simple App.
*/
public class AppTest
{
@Test
public void getUserById()
{
try {
//使用MyBatis提供的Resources类加载mybatis的配置文件
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
//构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session= sessionFactory.openSession();
UserMapper mapper=session.getMapper(UserMapper.class);
User user= mapper.getUserById(1);
System.out.println("[==mysql数据库==]"+user.toString());
User user2= mapper.getUserById(2);
System.out.println("[==mysql数据库==]"+user2.toString());
// session.commit();//查询可以不写
} catch (Exception e) {
e.printStackTrace();
}
}
}