配置:
pom.xml 文件中添加依赖 mysql驱动 , mybatis jar包 ,junit
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>
Resources文件下:
mybatis.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节点
里面有配置信息 分别是环境和映射
其中环境里有datasource,里面有我们熟悉的连接数据库的四个字符串
-->
<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/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
UserMapper.xml : 针对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,
每个方法对应自己的sql语句,每个sql语句对应有一个id
整个项目中所有的namespace.id必须是唯一的
-->
<mapper namespace="UserMapper">
<select id="selectUser" resultType="com.qfwh.pojo.User">
select * from tb_user
</select>
<select id="selectUserCount" resultType="int">
select count(*) from tb_user
</select>
<select id="select1" resultType="com.qfwh.pojo.User">
select * from tb_user limit 3
</select>
<select id="select2" resultType="com.qfwh.pojo.User">
select * from tb_user limit #{pageSize}
</select>
<select id="select3" resultType="com.qfwh.pojo.User">
select * from tb_user limit #{startIndex},#{pageSize}
</select>
<insert id="saveUser" >
insert into tb_user values (null,#{username},#{password});
</insert>
</mapper>
com.qfwh.pojo.User
package com.qfwh.pojo;
public class User {
private int id;
private String username;
private String password;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public User() {
}
}
//测试类
com.qfwh.test.TestUser
package com.qfwh.test;
import com.qfwh.pojo.User;
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.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestUser {
SqlSession session = null;
SqlSessionFactory sf = null;
@Before
public void setUp(){
try {
sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
session = sf.openSession(true);
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void tearDown(){
if (session!=null){
session.close();
session = null;
}
}
/**
* 测试类: 查询所有用户
*/
@Test
public void testGetAllUsers(){
/**
* 1. 使用mybatis的配置文件以及SqlSessionFactoryBuilder建造者模式创建SqlSessionFactory对象
* 2. 使用SqlSessionFactory对象的openSession()方法来得到一个SqlSession对象,用该对象即可完成对象的所有的crud操作
* 3. 使用SqlSession对象来完成crud操作
* 4. 关闭资源
*
*/
/**
* session的crud方法("namespace.id");整个项目中的namespace.id必须唯一
*/
try {
sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
session = sf.openSession();
List<User> users = session.selectList("UserMapper.selectUser");
for (User u : users) {
System.out.println(u);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (session!=null){
session.close();
session = null;
}
}
}
/**
* 测试类:查询所有的用户的数量
*/
@Test
public void testGetAllUsersCount(){
Integer count = session.selectOne("UserMapper.selectUserCount");
System.out.println(count);
}
@Test
public void testGetUsersByPage1(){
List<User> users = session.selectList("UserMapper.select1");
for (User u : users) {
System.out.println(u);
}
}
@Test
public void selectUsersByPage2(){
List<User> users = session.selectList("UserMapper.select2",3);
for (User u : users) {
System.out.println(u);
}
}
@Test
public void selectUsersByPage3(){
Map<String,Integer> map = new HashMap<>();
map.put("startIndex",2);
map.put("pageSize",3);
List<User> users = session.selectList("UserMapper.select3",map);
for (User u : users) {
System.out.println(u);
}
}
@Test
public void saveUser(){
User user = new User();
user.setUsername("babe");
user.setPassword("5201314");
int insert = session.insert("UserMapper.saveUser", user);
System.out.println(insert);
}
}