上章回顧
我們在MyBatis(一)中介紹了有關MyBatis的幾點內容:
- 持久層框架
- 幾乎避免了所以JDBC代碼和手動設定引數以及獲取結果集
- 使用了ORM思想,實作了結果集的封裝
ORM:object Relational Mapping 物件關系映射 - 把資料庫表和物體類以及物體類的屬性對應起來,讓我們可以操作物體類就實作操作資料庫表
接下來我們來了解一下,關于MyBatis中的增刪改查操作是如何實作的:
上一章中,我們介紹了根據指定欄位查詢、查詢全部資料、插入一條資料,大家還有印象嗎?讓我們一起來回顧一下吧!
先看看目錄結構:

dao層放的是介面,對資料的操作方法的宣告
pojo層放的是物體類以及物體對應的get和set方法
utils包中存放了MyBatis的組態檔讀取以及獲取SqlSessionFactory物件等操作
【具體代碼見MyBatis(一)】
dao層中UserMapper的宣告:
1.根據指定欄位查詢
// 創建一個查詢方法
@Select("select * from user where id = #{id}")
List<User> queryUserById(@Param("id") int id);
2.查詢全部資料
@Select("select * from user")
List<User> findAll();
3.插入一條資料
//創建一個插入的方法
@Insert("insert into user(id,username,password) values(#{id},#{username},#{password})")
int insertUser(Map map);
測驗功能的實作:
1.根據指定欄位查詢
@Test
public void TestQuery(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.queryUserById(1);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
2.查詢全部資料
@Test
public void findAll(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> list = mapper.findAll();
for (User user : list) {
System.out.println(user);
}
sqlSession.close();
}
3.插入一條資料
@Test
public void insertUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap map = new HashMap();
map.put("id",3);
map.put("username","user2");
map.put("password","1234");
mapper.insertUser(map);
sqlSession.close();
}
以上是MyBatis(一)中的部分內容,接下來讓我們來學習一下,如何洗掉和修改資料
1.洗掉指定條件的資料
1.首先是在UserMapper.java中添加一個洗掉方法的宣告
// 這是一個洗掉的方法
@Delete("delete from user where id = #{id}")
int deleteUser(@Param("id") int id);
2.然后在測驗類中實作這個方法
@Test
public void DeleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int count = mapper.deleteUser(1);
if (count>0){
System.out.println("User already be deleted!");
}else{
System.out.println("Delete failure!");
}
sqlSession.close();
}
讓我們來看看日志中列印了哪些內容

我們可以從列印的日志中看出,已經執行了洗掉的SQL陳述句,
為了驗證是否洗掉,我們查看一下資料庫:

id為1的用戶資訊已經被洗掉了!
2.修改一條指定的用戶資訊
1.首先是在UserMapper.java中添加一個修改方法的宣告
// 這是一個修改方法
@Update("update user set password = #{password} where id = #{id}")
int updateUser(Map map);
2.然后在測驗類中實作這個方法
@Test
public void UpdateUserInfo(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap map = new HashMap();
map.put("password","test123");
map.put("id",2);
int count = mapper.updateUser(map);
if (count>0){
System.out.println("User already be updated!");
}else{
System.out.println("Update failure!");
}
sqlSession.close();
}
讓我們來看看日志中列印了哪些內容

引數(Parameters)有兩個,分別是密碼和id,
其中我們要將密碼修改為test123
日志中,我們可以看到執行了一條update陳述句
我們再來看看資料庫中id為2的用戶密碼是否被更改,

由此可以看出,我們的修改操作執行成功了!
總結:
1.在dao層的Mapper介面中申明要執行的操作和方法
2.在測驗中實作對應的方法
增刪改查在后期的SSM框架整合的web專案中會經常用到,比較重要,所以希望大家反復練習!!!
以上就是我們用MyBatis實作增刪改查的全部內容啦!在后續的文章中,我將繼續介紹一些常用的插件、如何在Mapper.xml中實作增刪改查以及如何實作分頁和模糊查詢等內容,希望大家持續關注!
【求關注!求點贊!求三連!!!】
【具體代碼我會上傳至gitee和github中,等后期內容結束我會上傳至網盤,鏈接我會放在評論區】
更多內容請關注:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/200925.html
標籤:其他
