午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

Mybatis如何使用注解優化代碼

瀏覽:115日期:2023-10-21 18:31:41

entity層代碼不變,因為是優化,所以在dao層新增了一個通過id查詢用戶的功能,現在來演示一下優化前后的代碼對比,希望你們喜歡

entity層代碼不變,dao層中的UserMapper中添加一個方法

/*** 根據id查詢用戶*/User findUserById(int id);

在UserMapper.xml映射文件中添加

<select parameterType='int' resultType='com.vg.entity.User'> select * from user where id = #{id}; </select>

在test層中的test中使用沒有優化的代碼展示

package com.vg.test;import com.vg.dao.UserMapper;import com.vg.entity.User;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 java.io.InputStream;import java.util.List;/** * 測試類 */public class TestUserMapper {/** * 測試方法:查詢所有學生 * SqlSessionFactoryBuilder => SqlSessionFactory => SqlSession:相當于JDBC中的Connection對象,提供了操作數據庫的CRUD方法 */@Testpublic void testFindAllUsers()throws Exception{// 1. 通過Resources類,加載sqlMapConfig.xml,得到文件輸入流對象// Resources類作用:專門讀取src目錄下的資源文件InputStream in = Resources.getResourceAsStream('sqlMapConfig.xml');// 2. 實例化會話工廠創建類SqlSessionFactoryBuilderSqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();// 3. 通過會話工廠創建類,讀取上面的輸入流,得到會話工廠SqlSessionFactory類SqlSessionFactory sqlSessionFactory = builder.build(in);// 4. 使用SqlSessionFactory對象,創建SqlSession對象// a) 它相當于JDBC中的Connection對象,提供了操作數據庫的CRUD方法// b) 它提供了一個getMapper()方法,獲取接口的實現對象。SqlSession sqlSession = sqlSessionFactory.openSession();// 5. 獲取接口 UserMapper 實現類對象(代理對象)UserMapper userMapper = sqlSession.getMapper(UserMapper.class);System.out.println('userMapper = ' +userMapper);// 6. 執行數據庫的查詢操作,輸出用戶信息List<User> userList = userMapper.findAllUsers();for (User user : userList) {System.out.println(user);}// 7. 關閉會話,釋放資源。sqlSession.close();}@Testpublic void testFindUserById()throws Exception{// 1. 通過Resources類,加載sqlMapConfig.xml,得到文件輸入流對象// Resources類作用:專門讀取src目錄下的資源文件InputStream in = Resources.getResourceAsStream('sqlMapConfig.xml');// 2. 實例化會話工廠創建類SqlSessionFactoryBuilderSqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();// 3. 通過會話工廠創建類,讀取上面的輸入流,得到會話工廠SqlSessionFactory類SqlSessionFactory sqlSessionFactory = builder.build(in);// 4. 使用SqlSessionFactory對象,創建SqlSession對象// a) 它相當于JDBC中的Connection對象,提供了操作數據庫的CRUD方法// b) 它提供了一個getMapper()方法,獲取接口的實現對象。SqlSession sqlSession = sqlSessionFactory.openSession();// 5. 獲取接口 UserMapper 實現類對象(代理對象)UserMapper userMapper = sqlSession.getMapper(UserMapper.class);System.out.println('userMapper = ' +userMapper);// 6. 調用接口的方法根據id查詢用戶User user = userMapper.findUserById(1);System.out.println('user = ' + user);// 7. 關閉會話,釋放資源。sqlSession.close();}}

你會發現在這倆個方法中有很多相似的代碼,每次寫都要重新寫,關鍵是還沒有啥軟用,現在來看看優化之后的代碼

package com.vg.test;import com.vg.dao.UserMapper;import com.vg.entity.User;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.After;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.List;/** * 測試類 */public class TestUserMapper {private static SqlSessionFactory sqlSessionFactory =null;private SqlSession sqlSession =null;private UserMapper userMapper =null;// 該方法在所有測試方法執行之前執行1次@BeforeClasspublic static void init() throws Exception {// 1. 通過Resources類,加載sqlMapConfig.xml,得到文件輸入流對InputStream in = Resources.getResourceAsStream('sqlMapConfig.xml');// 2. 實例化會話工廠創建類SqlSessionFactoryBuilder對象SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();// 3. 根據字節輸入流獲取SqlSessionFactory對象sqlSessionFactory = builder.build(in);}// 該方法會在每個測試方法執行之前執行1次@Beforepublic void before(){// 4. 獲取SqlSession對象,等價連接對象// true:事務自動提交,false:不自動提交,默認值sqlSession = sqlSessionFactory.openSession();// 5. 創建接口 實現類對象 userMapper = sqlSession.getMapper(UserMapper.class);}/** * 測試方法:查詢所有學生 * SqlSessionFactoryBuilder => SqlSessionFactory => SqlSession:相當于JDBC中的Connection對象,提供了操作數據庫的CRUD方法 */@Testpublic void testFindAllUsers() throws Exception{List<User> userList = userMapper.findAllUsers();for (User user : userList) {System.out.println(user);}}@Testpublic void testFindUserById()throws Exception{// 6. 調用接口的方法根據id查詢用戶User user = userMapper.findUserById(1);System.out.println('user = ' + user);}@Afterpublic void after() {// 7. 關閉會話,釋放資源。sqlSession.close();}}

這樣子是不是比以前的代碼簡單起來了呢?

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 久久精品国产一区二区三区 | 亚洲最大激情网 | 成年人免费观看视频网站 | aaa日韩| 国产欧美日韩视频 | 国产激情四射 | 精品午夜一区二区三区在线观看 | 国产又粗又猛又爽又黄 | 亚洲色女 | 成人夜间视频 | 97色碰 | 黄色片免费 | 日韩视频一区二区三区在线播放免费观看 | 国产精品久久久久久久久久久久久久久久 | 看全色黄大色大片 | 色综合色综合色综合 | 一区二区亚洲视频 | 中文字幕中文字幕 | 国产成人精品久久二区二区91 | 久久视频国产 | 另类色综合 | 国产56页 | 蜜臀久久久久 | 国产一级片免费 | 性涩av | 香蕉在线视频观看 | 国产激情免费 | 欧美激情三区 | 丁香婷婷在线 | 久久福利网站 | 国产精品视频在线观看 | 99精品视频在线播放免费 | 中国毛片在线观看 | 亚洲激情五月 | 亚洲综合小说 | 日韩视频免费在线观看 | v天堂中文在线 | 色无极亚洲影院 | www日韩在线| 亚洲视频免费播放 | 国产成人亚洲综合a∨婷婷 国产三级精品三级观看 |