国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

7.平凡之路-動態SQL語句

時飛 / 2182人閱讀

摘要:附轉義字符第二種方法因為這個是格式的,所以不允許出現類似這樣的字符,但是都可以使用符號進行說明,將此類符號不進行解析你的可以寫成這個文件示例代碼

</>復制代碼

  1. 動態SQL語句是核心之一,這里我們通過幾個示例來演示

一 多條件查詢專題 1.通過恒等式完成動態SQL語句

</>復制代碼

  1. 涉及到if標簽

</>復制代碼

  1. user_id,user_name,sex,money,birthday
  2. ${alias}.user_id,${alias}.user_name,${alias}.sex,${alias}.money,${alias}.birthday

映射文件

</>復制代碼

Java測試代碼

</>復制代碼

  1. @Test
  2. public void IF標簽01(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. Map query = new HashMap<>();
  7. query.put("name", "悟");
  8. query.put("sex", "男");
  9. List userList =
  10. sqlSession.selectList(User.class.getName()+".if01", query);
  11. System.out.println(userList);
  12. } finally {
  13. MyBatisUtils.closeSqlSession(sqlSession);
  14. }
  15. }

圖解說明

2.where標簽和if標簽組合

如果發現標簽內有內容,那么會在內容的最前面加入關鍵字 where

如果有內容,會檢查內容的最前面是否含有 AND空格 或者 OR空格 ,自動將其抹掉

映射文件

</>復制代碼

Java測試代碼

</>復制代碼

  1. @Test
  2. public void IF標簽02(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. Map query = new HashMap<>();
  7. query.put("name", "悟");
  8. query.put("sex", "男");
  9. List userList =
  10. sqlSession.selectList(User.class.getName()+".if02", query);
  11. System.out.println(userList);
  12. } finally {
  13. MyBatisUtils.closeSqlSession(sqlSession);
  14. }
  15. }

圖解說明

3.trim標簽和if標簽

</>復制代碼

映射文件

</>復制代碼

Java測試代碼

</>復制代碼

  1. @Test
  2. public void trim標簽(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. Map query = new HashMap<>();
  7. query.put("name", "悟");
  8. query.put("sex", "男");
  9. List userList =
  10. sqlSession.selectList(User.class.getName()+".if03", query);
  11. System.out.println(userList);
  12. } finally {
  13. MyBatisUtils.closeSqlSession(sqlSession);
  14. }
  15. }

圖解說明

二 更新操作 1.set標簽

當你發現有內容的時候,在內容的最前面加入 set

當你發現有內容的時候,檢查內容的最后面是否有逗號"," 如果將其抹掉

映射文件

</>復制代碼

  1. UPDATE
  2. oa_user
  3. user_name=#{user_name},
  4. sex=#{sex},
  5. money=#{money},
  6. birthday=#{birthday},
  7. WHERE
  8. user_id=#{user_id}

Java測試代碼

</>復制代碼

  1. @Test
  2. public void 更新操作_變更數據庫(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. //數據
  7. User user = new User();
  8. user.setUser_id(3);
  9. user.setUser_name("天蓬元帥");
  10. //日期的轉換
  11. String date = "1998-09-09";
  12. DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  13. user.setBirthday(df.parse(date));
  14. int row =sqlSession.update(User.class.getName()+".update01", user);
  15. System.out.println(row);
  16. //事務的提交
  17. sqlSession.commit();
  18. }catch (Exception ex) {
  19. ex.printStackTrace();
  20. }finally {
  21. MyBatisUtils.closeSqlSession(sqlSession);
  22. }
  23. }

圖解說明

2.trim標簽完成更新

映射文件

</>復制代碼

  1. UPDATE
  2. oa_user
  3. user_name=#{user_name},
  4. sex=#{sex},
  5. money=#{money},
  6. birthday=#{birthday},
  7. WHERE
  8. user_id=#{user_id}

Java測試代碼

</>復制代碼

  1. @Test
  2. public void 更新操作_TRIM標簽_變更數據庫(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. //數據
  7. User user = new User();
  8. user.setUser_id(3);
  9. user.setUser_name("天蓬元帥123");
  10. //日期的轉換
  11. String date = "1998-10-09";
  12. DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  13. user.setBirthday(df.parse(date));
  14. int row =sqlSession.update(User.class.getName()+".update02", user);
  15. System.out.println(row);
  16. //事務的提交
  17. sqlSession.commit();
  18. }catch (Exception ex) {
  19. ex.printStackTrace();
  20. }finally {
  21. MyBatisUtils.closeSqlSession(sqlSession);
  22. }
  23. }
三 choose 標簽簡單使用

映射文件

</>復制代碼

Java測試代碼

</>復制代碼

  1. @Test
  2. public void choose標簽(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. Map query = new HashMap<>();
  7. query.put("sex", "女123213");
  8. List userList =
  9. sqlSession.selectList(User.class.getName()+".choose01", query);
  10. System.out.println(userList);
  11. } finally {
  12. MyBatisUtils.closeSqlSession(sqlSession);
  13. }
  14. }
四 小于號問題

映射文件

</>復制代碼

Java測試代碼

</>復制代碼

  1. @Test
  2. public void 小于號的解決問題(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. List userList =
  7. sqlSession.selectList(User.class.getName()+".less01", 1.0*800);
  8. System.out.println(userList);
  9. userList =
  10. sqlSession.selectList(User.class.getName()+".less02", 1.0*600);
  11. System.out.println(userList);
  12. } finally {
  13. MyBatisUtils.closeSqlSession(sqlSession);
  14. }
  15. }

圖解說明

</>復制代碼

  1. 請參考附錄1說明

五 動態添加語句

映射文件

</>復制代碼

  1. INSERT INTO oa_user
  2. user_name,
  3. sex,
  4. money,
  5. birthday,
  6. #{user_name},
  7. #{sex},
  8. #{money},
  9. #{birthday},

Java測試代碼

</>復制代碼

  1. @Test
  2. public void 動態的添加語句(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. //數據
  7. User user = new User();
  8. user.setUser_name("劉備12333333");
  9. //日期的轉換
  10. String date = "1998-10-09";
  11. DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  12. user.setBirthday(df.parse(date));
  13. user.setMoney(1111.11);
  14. int row =sqlSession.insert(User.class.getName()+".add01", user);
  15. System.out.println(row);
  16. //事務的提交
  17. sqlSession.commit();
  18. System.out.println(user);
  19. }catch (Exception ex) {
  20. ex.printStackTrace();
  21. }finally {
  22. MyBatisUtils.closeSqlSession(sqlSession);
  23. }
  24. }
六 foreach標簽 1.數組方式

映射方式

</>復制代碼

  1. DELETE FROM
  2. oa_user
  3. WHERE user_id in
  4. #{shxt}

Java測試代碼

</>復制代碼

  1. @Test
  2. public void 傳遞數組刪除規則(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. int row = sqlSession.delete(User.class.getName()+".delete01", new int[]{5,6});
  7. //事務的提交
  8. sqlSession.commit();
  9. System.out.println(row);
  10. }catch (Exception ex) {
  11. ex.printStackTrace();
  12. }finally {
  13. MyBatisUtils.closeSqlSession(sqlSession);
  14. }
  15. }
2.List方式

映射文件

</>復制代碼

  1. DELETE FROM
  2. oa_user
  3. WHERE user_id in
  4. #{shxt}

Java測試代碼

</>復制代碼

  1. @Test
  2. public void 傳遞集合刪除規則(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. List tempList = new ArrayList<>();
  7. tempList.add(8);
  8. tempList.add(9);
  9. int row = sqlSession.delete(User.class.getName()+".delete02", tempList);
  10. //事務的提交
  11. sqlSession.commit();
  12. System.out.println(row);
  13. }catch (Exception ex) {
  14. ex.printStackTrace();
  15. }finally {
  16. MyBatisUtils.closeSqlSession(sqlSession);
  17. }
  18. }
3.Map方式

映射方式

</>復制代碼

  1. DELETE FROM
  2. oa_user
  3. WHERE user_id in
  4. #{shxt}

Java測試代碼

</>復制代碼

  1. @Test
  2. public void 傳遞Map刪除規則(){
  3. SqlSession sqlSession = null;
  4. try {
  5. sqlSession = MyBatisUtils.getSqlSession();
  6. List tempList = new ArrayList<>();
  7. tempList.add(7);
  8. tempList.add(10);
  9. Map map = new HashMap();
  10. map.put("id_array", tempList);
  11. int row = sqlSession.delete(User.class.getName()+".delete03", map);
  12. //事務的提交
  13. sqlSession.commit();
  14. System.out.println(row);
  15. }catch (Exception ex) {
  16. ex.printStackTrace();
  17. }finally {
  18. MyBatisUtils.closeSqlSession(sqlSession);
  19. }
  20. }

圖解方式

4.批量添加

映射文件

</>復制代碼

  1. INSERT INTO
  2. oa_user
  3. VALUES
  4. (#{user.user_name},#{user.sex},#{user.money})
附錄1 : MyBatis在xml文件中處理大于號小于號的方法 第一種方法:

用了轉義字符把>和<替換掉,然后就沒有問題了。

</>復制代碼

  1. SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE

附:XML轉義字符

第二種方法

因為這個是xml格式的,所以不允許出現類似“>”這樣的字符,但是都可以使用符號進行說明,將此類符號不進行解析
你的可以寫成這個:
mapper文件示例代碼

</>復制代碼

  1. ??

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70347.html

相關文章

  • 6.平凡之路-單條件模糊查詢

    摘要:并且如果使用那么必須要指明值使用簡單的數據類型不好使使用接口代理模式的注解也可以 屬于MyBatis的核心之一,這里面的坑比較多,大家多多看看吧 一 模糊查詢的三種方式介紹 我會使用resultMap處理結果集數據 1.死數據的模糊查詢 映射文件 SELECT * FROM...

    tuantuan 評論0 收藏0
  • 3.平凡之路-傳統模式添加操作

    摘要:回顧上節課我們完成了的環境搭建核心配置文件映射文件的執行過程如何執行定制的語句我們測試的是死的數據那么下面我們使用容器傳遞動態的數據添加操作傳遞數據專題通過傳遞數據映射文件代碼傳遞參數數據的類型或者提供額內置類型映射中的獲取對應的值 回顧: 上節課我們完成了MyBatis的環境搭建核心配置文件映射文件API的執行過程如何執行定制的SQL語句 我們測試的是死的數據,那么下面我們使用容器傳...

    cucumber 評論0 收藏0
  • 5.平凡之路-查詢結果集簡單處理

    摘要:說在前面的話命名空間暫時約定持久化類實體的類名的全路徑一簡單查詢結果集處理查詢結果集處理為類型字段作為中的值映射文件命名空間唯一的不能重復結果集處理后變成類型當你傳遞的是一個簡單的數據類型的形參的時候那么你的值 說在前面的話 : 命名空間暫時約定-持久化類(實體Bean)的類名的全路徑 com.shxt.model.Skill 一 簡單查詢結果集處理 1.查詢結果集處理為Map類型 ...

    lowett 評論0 收藏0
  • 4.平凡之路-封裝幫助類和加載屬性文件

    摘要:文件知識點修飾類不能被基礎修飾方法不能被重寫修改變量常量不允許進行實例化靜態代碼塊只是加載一次加載核心配置文件失敗圖解說明加載屬性文件新建的根目錄下修改核心配置文件加載屬性文件配置數據庫的環境事務管理器保證數據的完整性 MyBatisUtils.java 文件 /** * 知識點: * final 修飾類 : 不能被基礎 * 修飾方法 : 不能被重寫 * 修改變量 : 常量 ...

    snifes 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<