上一章節(jié),我們完成了MyBatis基礎(chǔ)環(huán)境的搭建,并完成了一個簡單的查詢操作,本小節(jié)們繼續(xù)回顧添加、修改和刪除方法
繼續(xù)在UserMapper.xml文件添加saveUser(添加用戶)、updateUser(修改用戶)、deleteUser(刪除用戶)這個方法,并完成對應SQL的編寫
UserMapper.xml的具體源碼(這里我們編寫刪除方法的時候,占位符直接給了一個abc,主要就是用來驗證一下,如果當方法參數(shù)只有一個的時候,占位符其實可以任意給一個名稱,但是實際開發(fā)過程當中請盡量與實體屬性保持一致)
<?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="study.lagou.com.mapper">
<!--查詢方法-->
<select id="findAll" resultType="study.lagou.com.pojo.User">
SELECT * FROM user
</select>
<!--添加用戶-->
<insert id="saveUser" parameterType="study.lagou.com.pojo.User">
INSERT INTO user VALUES (#{id},#{username},#{password},#{nickname})
</insert>
<!--修改用戶-->
<update id="updateUser" parameterType="study.lagou.com.pojo.User">
UPDATE user SET username = #{username},password = #{password},nickname = #{nickname} WHERE id = #{id}
</update>
<!--刪除用戶方法,在指定參數(shù)的時候,如果當前方法參數(shù)只有一個,
那么占位符名稱其實可以任意給一個,只是為了見名知意,我們需要規(guī)
范,盡量與實體類屬性相對應-->
<delete id="deleteUser" parameterType="java.lang.Integer">
DELETE FROM user WHERE id = #{abc}
</delete>
</mapper>
編寫完UserMapper.xml,我們就接著編寫測試類,對我們新加入的方法進行測試(注意當方法執(zhí)行完成的時候,我們需要調(diào)用sqlSession.close()方法對sqlSession進行關(guān)閉操作,做增刪改操作的時候,需要執(zhí)行sqlSession.commit()才會對數(shù)據(jù)庫產(chǎn)生影響)
package study.lagou.com.test;
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 study.lagou.com.pojo.User;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* @Description: 功能描述
* @Author houjh
* @Email: happyxiaohou@gmail.com
* @Date: 2021-3-22 19:48
*/
public class MyBatisTest {
@Test
public void testFindAll() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
List<User> users = sqlSession.selectList("study.lagou.com.mapper.findAll");
for (User user : users) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void testSaveUser() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = new User();
user.setId(6);
user.setNickname("湯姆");
user.setPassword("111");
user.setUsername("tom");
sqlSession.insert("study.lagou.com.mapper.saveUser",user);
//做增刪改查詢的時候,注意一下事務(wù)提交,如果不提交就無法保存到數(shù)據(jù)庫當中
sqlSession.commit();
sqlSession.close();
}
@Test
public void testUpdateUser() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = new User();
user.setId(6);
user.setNickname("湯姆貓");
user.setPassword("333");
user.setUsername("tomcat");
sqlSession.update("study.lagou.com.mapper.updateUser",user);
//做增刪改查詢的時候,注意一下事務(wù)提交,如果不提交就無法保存到數(shù)據(jù)庫當中
sqlSession.commit();
sqlSession.close();
}
@Test
public void testDeleteUser() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.delete("study.lagou.com.mapper.deleteUser",6);
//做增刪改查詢的時候,注意一下事務(wù)提交,如果不提交就無法保存到數(shù)據(jù)庫當中
sqlSession.commit();
sqlSession.close();
}
}
最后執(zhí)行測試,查看測試結(jié)果是否正常

MyBatis回顧測試結(jié)果.png
上一篇筆記地址:http://www.itdecent.cn/p/165be4dcf424