1. 下载
https://github.com/mybatis/mybatis-3/releases
帮助文档
\mybatis-3.4.1\mybatis-3.4.1\mybatis-3.4.1.pdf
2. maven配置
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
3. 日志配置
添加log4j.properties到src目录下
log4j.rootLogger=DEBUG,Console
#输出到控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
4. 创建数据库表(mysql)
create table tbl_employee(
id int(11) primary key auto_increment,
last_name varchar(255),
gender char(1),
email varchar(255)
);
insert into tbl_employee values(null,'tom',0,'tom@guigu');
5.创建对应的java bean
注意,此处java bean的lastname字段与数据库中last_name字段不对应,需要在sql中起别名处理
public class Employee {
private int id;
private String lastname;
private String email;
private String gender;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", lastname='" + lastname + '\'' +
", email='" + email + '\'' +
", gender='" + gender + '\'' +
'}';
}
}
6.创建mybatis配置文件
mybatis-config.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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/mybatis?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/stayreal/mybatis/EmployeeMapper.xml"/>
</mappers>
</configuration>
7. 创建javabean的映射文件
EmployeeMapper.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.stayreal.mybatis.EmployeeMapper">
<select id="selectEmp" resultType="com.stayreal.mybatis.Employee">
select id,last_name lastname,email,gender from tbl_employee where id = #{id}
</select>
</mapper>
8. 创建JunitTest测试结果
public class EmployeeTest{
private static SqlSessionFactory sqlSessionFactory;
private SqlSession session;
@BeforeClass
public static void beforeClass() throws IOException {
// 1. 根据xml创建SqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@AfterClass
public void afterClass(){
session.close();
}
@Test
public void testLoad() throws IOException {
// 2. 获取session实例 能执行已经映射的sql语句
session = sqlSessionFactory.openSession();
// selectOne方法的两个参数:
// sql的唯一标识
// 执行sql要用的参数
Employee employee = session.selectOne("com.stayreal.mybatis.EmployeeMapper.selectEmp", 1);
System.out.println(employee.toString());
}
}
观察console输出
[DEBUG][2017-06-06 15:59:51,056][com.stayreal.mybatis.EmployeeMapper.selectEmp]==> Preparing: select id,last_name lastname,email,gender from tbl_employee where id = ?
[DEBUG][2017-06-06 15:59:51,184][com.stayreal.mybatis.EmployeeMapper.selectEmp]==> Parameters: 1(Integer)
[DEBUG][2017-06-06 15:59:51,258][com.stayreal.mybatis.EmployeeMapper.selectEmp]<== Total: 1
Employee{id=1, lastname='tom', email='tom@guigu', gender='0'}