在MyBatis(二)的學習中我們已經實作了第一個MyBatis程式,現在我們要實作增刪改查的完整操作,我們應該思考我們需要去修改哪些內容呢?
修改三個內容:Mapper介面、對應Mapper介面的xml組態檔、測驗類,
一、查詢
我們嘗試一個根據id查詢一個用戶的資訊,
1.修改UserMapper介面
在其中添加我們對應的方法:
package com.jms.dao; import java.util.List; import com.jms.pojo.User; public interface UserMapper {//根據id獲取User資訊 User getUserbyid(int id); }
2.修改UerMapper.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"> <!-- 命名空間namespace對應Mapper介面 --> <mapper namespace="com.jms.dao.UserMapper"> <select id="getUserbyid" parameterType="int" resultType="com.jms.pojo.User"> select * from mybaties.user where id=#{id} </select> </mapper>
我們這里在對上面幾個名稱進行回顧:
(1)namespace:命名空間,對應的是Mapper介面的全限定命名,
(2)id:對應的時Mapper介面中的方法名,
(3)parameterType:對應方法中傳入的引數型別,
(4)resultType:對應的是SQL陳述句的回傳值型別,
3.junit測驗
1 @Test 2 public void Select() { 3 //利用工具類獲取SqlSession 4 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 6 User user = userMapper.getUserbyid(10000); 7 System.out.println(user); 8 sqlSession.close(); 9 }
測驗結果:

二、增加
1.修改UserMapper介面
添加對應的方法:
1 package com.jms.dao; 2 3 import java.util.List; 4 5 import com.jms.pojo.User; 6 7 public interface UserMapper { 8 9 //增加用戶資訊 10 int addUser(User user); 11 }
2.修改UerMapper.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"> <!-- 命名空間namespace對應Mapper介面 --> <mapper namespace="com.jms.dao.UserMapper"> <!-- id對應介面中的方法 --> <insert id="addUser" parameterType="com.jms.pojo.User"> insert mybaties.user value(#{id},#{username},#{password}) </insert> </mapper>
其中的#{id}、#{username}、#{password}都是對應著User的私有屬性id、usename、password,
3.junit測驗
1 @Test 2 public void Insert() { 3 //利用工具類獲取SqlSession 4 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 6 userMapper.addUser(new User(10006,"jms6","123456")); 7 //提交事務 8 sqlSession.commit(); 9 sqlSession.close(); 10 }
上述代碼第8行的提交事務是必須的,否則無法將內容插入的資料庫中,
測驗結果:

我們可以看到資料成功插入,
三、修改
1.修改UserMapper介面
1 package com.jms.dao; 2 3 import java.util.List; 4 5 import com.jms.pojo.User; 6 7 public interface UserMapper { 8 9 //修改用戶資訊 10 int UpdateUser(User user); 11 }
2.修改UerMapper.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"> <!-- 命名空間namespace對應Mapper介面 --> <mapper namespace="com.jms.dao.UserMapper"> <!-- id對應介面中的方法 --> <update id="UpdateUser" parameterType="com.jms.pojo.User"> update mybaties.user set username=#{username},password=#{password} where id=#{id} </update> </mapper>
3.junit測驗
1 @Test 2 public void Update() { 3 //利用工具類獲取SqlSession 4 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 6 userMapper.UpdateUser(new User(10006, "jms7", "456123")); 7 //提交事務 8 sqlSession.commit(); 9 sqlSession.close(); 10 }
測驗結果:

四、洗掉
1.修改UserMapper介面
1 package com.jms.dao; 2 3 import java.util.List; 4 5 import com.jms.pojo.User; 6 7 public interface UserMapper { 8 //洗掉用戶 9 int DeleteUser(int id); 10 }
2.修改UserMapper.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"> <!-- 命名空間namespace對應Mapper介面 --> <mapper namespace="com.jms.dao.UserMapper"> <!-- id對應介面中的方法 --> <delete id="DeleteUser" parameterType="int"> delete from mybaties.user where id=#{id} </delete> </mapper>
3.junit測驗
1 @Test 2 public void Delete() { 3 //利用工具類獲取SqlSession 4 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 6 userMapper.DeleteUser(10006); 7 //提交事務 8 sqlSession.commit(); 9 sqlSession.close(); 10 }
測驗結果:

五、總結
1.注意Mapper.xml檔案中各個名稱的含義,
2.注意增刪改操作需要SqlSession.commit()進行提交事務,
(本文僅作個人學習記錄用,如有紕漏敬請指正)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505588.html
標籤:其他
上一篇:并發編程AQS原始碼分析
