前面的话:本实例意在搭建纯Mybatis环境,供学习理解mybatis的开发过程使用,在实际生产环境中会结合Spring、SpringMVC、SpringBoot等框架使用。
数据准备
创建一个数据库,并新增一张名为userinfo的表:
建表语句为:
CREATE TABLE `userinfo` (
`id` int(5) NOT NULL,
`username` varchar(20) DEFAULT NULL,
`password` varchar(32) DEFAULT NULL,
`age` int(3) DEFAULT NULL,
`sex` tinyint(1) DEFAULT NULL COMMENT '1:男 0:女',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
创建工程
1、创建一个web工程,创建方式请看:https://www.cnblogs.com/1314wamm/p/7475771.html
2、导入mybatis相关依赖包
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!-- junit测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
3、新建一个pojo类UserInfo.java与MySQL中的userinfo表一一对应。
package com.qunar.pojo;
/**
* @Description:
* @Author: renxin.tang
* @Date: 2019-08-09 15:58
*/
public class UserInfo {
private int id ;
private String username ;
private String password ;
private int age ;
private int sex ;// 1:男 0:女
/*
getter and setter
*/
}
4、在resources文件夹中创建 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.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/qfcdb" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!-- 设置mapping文件路径配置 -->
<mappers>
<mapper resource="mapper/UserInfoMapper.xml"/>
</mappers>
</configuration>
5、在resources创建一个mapper文件夹,存放映射xml文件,并创建一个UserInfoMapper.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.qunar.pojo.UserInfo">
<select id="findByid" parameterType="int" resultType="com.qunar.pojo.UserInfo">
select * from userinfo where id = #{id}
</select>
</mapper>
6、一个非常简单的测试demo
mybatis开发步骤:
1)读取配置文件
2)创建session工厂SqlSessionFactory
3)获取SqlSession
4)执行sql
5)返回结果并处理
6)关闭session
package com.qunar.test;
import com.qunar.pojo.UserInfo;
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.IOException;
import java.io.Reader;
/**
* @Description:
* @Author: renxin.tang
* @Date: 2019-08-09 16:41
*/
public class TestDemo {
@Test
public void userFindById(){
//设置配置文件名
String resources = "mybatis-config.xml";
Reader reader=null;
try {
// 读取配合文件到reader对象中
reader= Resources.getResourceAsReader(resources);
} catch (IOException e) {
e.printStackTrace();
}
//创建SqlSessionFactory类的实例
SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
//创建session实例
SqlSession session=sqlMapper.openSession();
//传入参数查询,返回结果
// findById 与 UserInfoMapper 中select标签设置的ID一致,表示执行哪个sql语句
UserInfo user=session.selectOne("findByid",1);
//输出结果
System.out.println(user.getUsername()+"\t" + user.getAge());
//关闭session
session.close();
}
}
测试结果: