在上一篇:maven项目----mybatis连接数据库--入门级完整代码:https://blog.csdn.net/LOVEYSUXIN/article/details/103461531基础上,进一步学习通过mybatis实现对数据库表的增删改查功能。部分代码同上一篇的就不在重复记录。
1、创建UserDao接口
package com.xl.dao;
import com.xl.mybatis.User;
import java.util.List;
public interface UserDao {
/**根据uid 查询用户信息*/
public User queryUserById(Integer uid);
/** 查询所有用户信息*/
public List<User> queryUserAll();
/**新增用户*/
public void insertUser(User user);
/**更新用户信息*/
public void updateUser(User user);
/**根据uid删除用户信息*/
public void deleteUser(Integer uid);
}
2、创建UserDaoImpl
package com.xl;
import com.xl.dao.UserDao;
import com.xl.mybatis.User;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class UserDaoImpl implements UserDao {
public SqlSession sqlSession;
public UserDaoImpl(SqlSession sqlSession){
this.sqlSession = sqlSession;
}
public User queryUserById(Integer uid) {
return this.sqlSession.selectOne("UserDao.queryUserById",uid);
}
public List<User> queryUserAll() {
return this.sqlSession.selectList("UserDao.queryUserAll");
}
public void insertUser(User user) {
this.sqlSession.insert("UserDao.insertUser", user);
}
public void updateUser(User user) {
this.sqlSession.update("UserDao.updateUser", user);
}
public void deleteUser(Integer uid) {
this.sqlSession.delete("UserDao.deleteUser", uid);
}
}
3、 编写UserDao对应的UserDaoMapper.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:命名空间,随便写,一般保证命名空间唯一 -->
<mapper namespace="UserDao">
<select id="queryUserById" resultType="com.xl.mybatis.User">
select * from user where uid = #{uid};
</select>
<select id="queryUserAll" resultType="com.xl.mybatis.User">
select * from user;
</select>
<insert id="insertUser" parameterType="com.xl.mybatis.User">
INSERT INTO user(
uid,
uname,
usex
)
values
(
#{uid},
#{uname},
#{usex}
);
</insert>
<update id="updateUser" parameterType="com.xl.mybatis.User">
update user
<trim prefix="set" suffixOverrides=",">
<if test="uname!=null">uname = #{uname},</if>
<if test="usex!=null">usex = #{usex},</if>
</trim>
where (uid = #{uid})
</update>
<delete id="deleteUser">
delete from user where uid=#{uid}
</delete>
</mapper>
4、在mybatis-config.xml中添加配置:
5、 添加UserDao的测试用例
Pom文件中添加junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
按住Alt+Enter,选择create test
6、编写UserDao的测试用例
package com.xl.mybatis.test;
import com.xl.UserDaoImpl;
import com.xl.dao.UserDao;
import com.xl.mybatis.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Before;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
public class UserDaoTest {
public UserDao userDao;
public SqlSession sqlSession;
@Before
public void setUp() throws Exception{
String resource = "mybatis-config.xml";
// 读取配置文件
InputStream is = Resources.getResourceAsStream(resource);
// 构建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
// 获取sqlSession
sqlSession = sqlSessionFactory.openSession();
this.userDao = new UserDaoImpl(sqlSession);
}
@Test
public void queryUserById() {
System.out.println(this.userDao.queryUserById(1));
}
@Test
public void queryUserAll() {
List<User> userList = this.userDao.queryUserAll();
for(User user:userList){
System.out.println(user);
}
}
@Test
public void insertUser() {
User user = new User();
user.setUid(4);
user.setUname("Lan");
user.setUsex("女");
this.userDao.insertUser(user);
this.sqlSession.commit();
}
@Test
public void updateUser() {
User user = new User();
user.setUname("Fei");
user.setUsex("男");
user.setUid(1);
this.userDao.updateUser(user);
this.sqlSession.commit();
}
@Test
public void deleteUser() {
this.userDao.deleteUser(4);
this.sqlSession.commit();
}
}
可鼠标点选某一个方法单独测试该方法,也可直接运行UserDaoTest类,测试所有方法。
下一篇学习 将通过动态代理的方式使得mybatis实现CRUD :https://blog.csdn.net/LOVEYSUXIN/article/details/103474247