写在前面:受限于自身编程语言水平,文中可能存在错误之处,博客本意只为自查,不建议作为学习之用
1、项目结构
2、数据库结构
3、基础类
package com.xiaohu.test;
public class User {
private int id;
private String name;
private int age;
public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public User() {
super();
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
4、映射文件
<?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.xiaohu.test.UserMapper">
<!-- CRUD -->
<insert id="addUser" parameterType="com.xiaohu.test.User">
insert into users (name,age) values (#{name},#{age})
</insert>
<delete id="deleteUser" parameterType="int">
delete from users where id=#{id}
</delete>
<update id="updateUser" parameterType="com.xiaohu.test.User">
update users set name=#{name},age=#{age} where id =#{id}
</update>
<!-- 返回值为USER -->
<select id="selectUser" parameterType="int" resultType="com.xiaohu.test.User">
select * from users where id =#{id}
</select>
<!-- (原本为List<User>)此处返回USER,使用该SQL时处理 -->
<select id="selectUsers" resultType="com.xiaohu.test.User">
select * from users
</select>
</mapper>
5、处理类
package com.xiaohu.test;
import java.io.IOException;
import java.io.Reader;
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;
public class UserDao {
//声明一次会话工厂
private static SqlSessionFactory sqlSessionFactory=null;
//使用静态块初始化
static {
try {
//使用流读入配置文件
Reader reader=Resources.getResourceAsReader("config.xml");
sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addUser(User user) {
//开启会话为true,表名自动提交
SqlSession sqlSession= sqlSessionFactory.openSession(true);
//实质就是去找这个sql语句
int insert=sqlSession.insert("com.xiaohu.test.UserMapper.addUser", user);
System.out.println(insert);
sqlSession.close();
}
public void deleteUser(int id) {
//开启会话不设置,默认为false
SqlSession sqlSession= sqlSessionFactory.openSession();
int delete= sqlSession.delete("com.xiaohu.test.UserMapper.deleteUser", id);
//此处需要进行提交处理
sqlSession.commit();
System.out.println(delete);
sqlSession.close();
}
public void updateUser(User user) {
SqlSession sqlSession= sqlSessionFactory.openSession(true);
int update=sqlSession.update("com.xiaohu.test.UserMapper.updateUser", user);
System.out.println(update);
sqlSession.close();
}
public User selectUser(int id) {
User user=null;
SqlSession sqlSession= sqlSessionFactory.openSession(true);
user=sqlSession.selectOne("com.xiaohu.test.UserMapper.selectUser", id);
sqlSession.close();
return user;
}
public List<User> selectUsers(){
List<User> list=null;
SqlSession sqlSession= sqlSessionFactory.openSession(true);
//此处使用selectList
list=sqlSession.selectList("com.xiaohu.test.UserMapper.selectUsers");
sqlSession.close();
return list;
}
}
6、配置文件
<?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">
<!-- com.microsoft.sqlserver.jdbc.SQLServerDriver -->
<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=Test" />
<property name="username" value="sa" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!-- 引入映射文件 -->
<mappers>
<mapper resource="com/xiaohu/test/UserMapper.xml"/>
</mappers>
</configuration>
7、使用junit测试
package com.xiaohu.test;
import java.util.List;
import org.junit.Test;
public class UserTest {
UserDao userDao=new UserDao();
@Test
public void addUser() {
userDao.addUser(new User(-1,"旺旺",12));
}
@Test
public void deleteUser() {
userDao.deleteUser(3);
}
@Test
public void updateUser() {
userDao.updateUser(new User(2,"旺财",12));
}
@Test
public void getUser() {
User user=userDao.selectUser(2);
System.out.println(user);
}
@Test
public void getUsers() {
List<User> list=userDao.selectUsers();
System.out.println(list);
}
}