摘要:附轉(zhuǎn)義字符第二種方法因?yàn)檫@個(gè)是格式的,所以不允許出現(xiàn)類似這樣的字符,但是都可以使用符號(hào)進(jìn)行說明,將此類符號(hào)不進(jìn)行解析你的可以寫成這個(gè)文件示例代碼
一 多條件查詢專題 1.通過恒等式完成動(dòng)態(tài)SQL語句動(dòng)態(tài)SQL語句是核心之一,這里我們通過幾個(gè)示例來演示
涉及到if標(biāo)簽
user_id,user_name,sex,money,birthday ${alias}.user_id,${alias}.user_name,${alias}.sex,${alias}.money,${alias}.birthday
映射文件
Java測試代碼
@Test public void IF標(biāo)簽01(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapquery = new HashMap<>(); query.put("name", "悟"); query.put("sex", "男"); List userList = sqlSession.selectList(User.class.getName()+".if01", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
圖解說明
如果發(fā)現(xiàn)標(biāo)簽內(nèi)有內(nèi)容,那么會(huì)在內(nèi)容的最前面加入關(guān)鍵字 where
如果有內(nèi)容,會(huì)檢查內(nèi)容的最前面是否含有 AND空格 或者 OR空格 ,自動(dòng)將其抹掉
映射文件
Java測試代碼
@Test public void IF標(biāo)簽02(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapquery = new HashMap<>(); query.put("name", "悟"); query.put("sex", "男"); List userList = sqlSession.selectList(User.class.getName()+".if02", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
圖解說明
3.trim標(biāo)簽和if標(biāo)簽映射文件
Java測試代碼
@Test public void trim標(biāo)簽(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Mapquery = new HashMap<>(); query.put("name", "悟"); query.put("sex", "男"); List userList = sqlSession.selectList(User.class.getName()+".if03", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
圖解說明
當(dāng)你發(fā)現(xiàn)有內(nèi)容的時(shí)候,在內(nèi)容的最前面加入 set
當(dāng)你發(fā)現(xiàn)有內(nèi)容的時(shí)候,檢查內(nèi)容的最后面是否有逗號(hào)"," 如果將其抹掉
映射文件
UPDATE oa_user WHERE user_id=#{user_id} user_name=#{user_name}, sex=#{sex}, money=#{money}, birthday=#{birthday},
Java測試代碼
@Test public void 更新操作_變更數(shù)據(jù)庫(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); //數(shù)據(jù) User user = new User(); user.setUser_id(3); user.setUser_name("天蓬元帥"); //日期的轉(zhuǎn)換 String date = "1998-09-09"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); user.setBirthday(df.parse(date)); int row =sqlSession.update(User.class.getName()+".update01", user); System.out.println(row); //事務(wù)的提交 sqlSession.commit(); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }
圖解說明
映射文件
UPDATE oa_user WHERE user_id=#{user_id} user_name=#{user_name}, sex=#{sex}, money=#{money}, birthday=#{birthday},
Java測試代碼
@Test public void 更新操作_TRIM標(biāo)簽_變更數(shù)據(jù)庫(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); //數(shù)據(jù) User user = new User(); user.setUser_id(3); user.setUser_name("天蓬元帥123"); //日期的轉(zhuǎn)換 String date = "1998-10-09"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); user.setBirthday(df.parse(date)); int row =sqlSession.update(User.class.getName()+".update02", user); System.out.println(row); //事務(wù)的提交 sqlSession.commit(); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }三 choose 標(biāo)簽簡單使用
映射文件
Java測試代碼
@Test public void choose標(biāo)簽(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); Map四 小于號(hào)問題query = new HashMap<>(); query.put("sex", "女123213"); List userList = sqlSession.selectList(User.class.getName()+".choose01", query); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
映射文件
Java測試代碼
@Test public void 小于號(hào)的解決問題(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); ListuserList = sqlSession.selectList(User.class.getName()+".less01", 1.0*800); System.out.println(userList); userList = sqlSession.selectList(User.class.getName()+".less02", 1.0*600); System.out.println(userList); } finally { MyBatisUtils.closeSqlSession(sqlSession); } }
圖解說明
五 動(dòng)態(tài)添加語句請(qǐng)參考附錄1說明
映射文件
INSERT INTO oa_user user_name, sex, money, birthday, #{user_name}, #{sex}, #{money}, #{birthday},
Java測試代碼
@Test public void 動(dòng)態(tài)的添加語句(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); //數(shù)據(jù) User user = new User(); user.setUser_name("劉備12333333"); //日期的轉(zhuǎn)換 String date = "1998-10-09"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); user.setBirthday(df.parse(date)); user.setMoney(1111.11); int row =sqlSession.insert(User.class.getName()+".add01", user); System.out.println(row); //事務(wù)的提交 sqlSession.commit(); System.out.println(user); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }六 foreach標(biāo)簽 1.數(shù)組方式
映射方式
DELETE FROM oa_user WHERE user_id in #{shxt}
Java測試代碼
@Test public void 傳遞數(shù)組刪除規(guī)則(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); int row = sqlSession.delete(User.class.getName()+".delete01", new int[]{5,6}); //事務(wù)的提交 sqlSession.commit(); System.out.println(row); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }2.List方式
映射文件
DELETE FROM oa_user WHERE user_id in #{shxt}
Java測試代碼
@Test public void 傳遞集合刪除規(guī)則(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); List3.Map方式tempList = new ArrayList<>(); tempList.add(8); tempList.add(9); int row = sqlSession.delete(User.class.getName()+".delete02", tempList); //事務(wù)的提交 sqlSession.commit(); System.out.println(row); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }
映射方式
DELETE FROM oa_user WHERE user_id in #{shxt}
Java測試代碼
@Test public void 傳遞Map刪除規(guī)則(){ SqlSession sqlSession = null; try { sqlSession = MyBatisUtils.getSqlSession(); ListtempList = new ArrayList<>(); tempList.add(7); tempList.add(10); Map map = new HashMap (); map.put("id_array", tempList); int row = sqlSession.delete(User.class.getName()+".delete03", map); //事務(wù)的提交 sqlSession.commit(); System.out.println(row); }catch (Exception ex) { ex.printStackTrace(); }finally { MyBatisUtils.closeSqlSession(sqlSession); } }
圖解方式
映射文件
附錄1 : MyBatis在xml文件中處理大于號(hào)小于號(hào)的方法 第一種方法:INSERT INTO oa_user VALUES (#{user.user_name},#{user.sex},#{user.money})
用了轉(zhuǎn)義字符把>和<替換掉,然后就沒有問題了。
SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE
附:XML轉(zhuǎn)義字符
第二種方法因?yàn)檫@個(gè)是xml格式的,所以不允許出現(xiàn)類似“>”這樣的字符,但是都可以使用符號(hào)進(jìn)行說明,將此類符號(hào)不進(jìn)行解析
你的可以寫成這個(gè):
mapper文件示例代碼
??
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/70347.html
摘要:并且如果使用那么必須要指明值使用簡單的數(shù)據(jù)類型不好使使用接口代理模式的注解也可以 屬于MyBatis的核心之一,這里面的坑比較多,大家多多看看吧 一 模糊查詢的三種方式介紹 我會(huì)使用resultMap處理結(jié)果集數(shù)據(jù) 1.死數(shù)據(jù)的模糊查詢 映射文件 SELECT * FROM...
摘要:回顧上節(jié)課我們完成了的環(huán)境搭建核心配置文件映射文件的執(zhí)行過程如何執(zhí)行定制的語句我們測試的是死的數(shù)據(jù)那么下面我們使用容器傳遞動(dòng)態(tài)的數(shù)據(jù)添加操作傳遞數(shù)據(jù)專題通過傳遞數(shù)據(jù)映射文件代碼傳遞參數(shù)數(shù)據(jù)的類型或者提供額內(nèi)置類型映射中的獲取對(duì)應(yīng)的值 回顧: 上節(jié)課我們完成了MyBatis的環(huán)境搭建核心配置文件映射文件API的執(zhí)行過程如何執(zhí)行定制的SQL語句 我們測試的是死的數(shù)據(jù),那么下面我們使用容器傳...
摘要:說在前面的話命名空間暫時(shí)約定持久化類實(shí)體的類名的全路徑一簡單查詢結(jié)果集處理查詢結(jié)果集處理為類型字段作為中的值映射文件命名空間唯一的不能重復(fù)結(jié)果集處理后變成類型當(dāng)你傳遞的是一個(gè)簡單的數(shù)據(jù)類型的形參的時(shí)候那么你的值 說在前面的話 : 命名空間暫時(shí)約定-持久化類(實(shí)體Bean)的類名的全路徑 com.shxt.model.Skill 一 簡單查詢結(jié)果集處理 1.查詢結(jié)果集處理為Map類型 ...
摘要:文件知識(shí)點(diǎn)修飾類不能被基礎(chǔ)修飾方法不能被重寫修改變量常量不允許進(jìn)行實(shí)例化靜態(tài)代碼塊只是加載一次加載核心配置文件失敗圖解說明加載屬性文件新建的根目錄下修改核心配置文件加載屬性文件配置數(shù)據(jù)庫的環(huán)境事務(wù)管理器保證數(shù)據(jù)的完整性 MyBatisUtils.java 文件 /** * 知識(shí)點(diǎn): * final 修飾類 : 不能被基礎(chǔ) * 修飾方法 : 不能被重寫 * 修改變量 : 常量 ...
閱讀 830·2021-09-22 15:18
閱讀 1181·2021-09-09 09:33
閱讀 2758·2019-08-30 10:56
閱讀 1184·2019-08-29 16:30
閱讀 1488·2019-08-29 13:02
閱讀 1458·2019-08-26 13:55
閱讀 1643·2019-08-26 13:41
閱讀 1941·2019-08-26 11:56