电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

Mybatis如何使用注解優化代碼

瀏覽:58日期: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 數據庫
相關文章:
主站蜘蛛池模板: 房间温控器|LonWorks|海思| 上海律师事务所_上海刑事律师免费咨询平台-煊宏律师事务所 | 高铝轻质保温砖_刚玉莫来石砖厂家_轻质耐火砖价格 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 信阳市建筑勘察设计研究院有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 高博医疗集团上海阿特蒙医院| 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 海水晶,海水素,海水晶价格-潍坊滨海经济开发区强隆海水晶厂 | 高速混合机_锂电混合机_VC高效混合机-无锡鑫海干燥粉体设备有限公司 | 超声波分散机-均质机-萃取仪-超声波涂料分散设备-杭州精浩 | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 英超直播_英超免费在线高清直播_英超视频在线观看无插件-24直播网 | 健康管理师报考条件,考试时间,报名入口—首页 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 脱硫搅拌器厂家-淄博友胜不锈钢搅拌器厂家 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 宜兴紫砂壶知识分享 - 宜兴壶人 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 |