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

資訊專欄INFORMATION COLUMN

7.平凡之路-動(dòng)態(tài)SQL語句

時(shí)飛 / 2171人閱讀

摘要:附轉(zhuǎn)義字符第二種方法因?yàn)檫@個(gè)是格式的,所以不允許出現(xiàn)類似這樣的字符,但是都可以使用符號(hào)進(jìn)行說明,將此類符號(hào)不進(jìn)行解析你的可以寫成這個(gè)文件示例代碼

動(dòng)態(tài)SQL語句是核心之一,這里我們通過幾個(gè)示例來演示

一 多條件查詢專題 1.通過恒等式完成動(dòng)態(tài)SQL語句

涉及到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();
            Map query = 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);
        }
    }

圖解說明

2.where標(biāo)簽和if標(biāo)簽組合

如果發(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();
            Map query = 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();
            Map query = 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);
        }
    }

圖解說明

二 更新操作 1.set標(biāo)簽

當(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
        
            
                user_name=#{user_name},
            
            
                sex=#{sex},
            
            
                money=#{money},
            
            
                birthday=#{birthday},
            
        
        WHERE
            user_id=#{user_id}
    
    

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);
        }
    }

圖解說明

2.trim標(biāo)簽完成更新

映射文件

    
        UPDATE
            oa_user
        
            
                user_name=#{user_name},
            
            
                sex=#{sex},
            
            
                money=#{money},
            
            
                birthday=#{birthday},
            
       
        WHERE
            user_id=#{user_id}
    

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 query = new HashMap<>();
            query.put("sex", "女123213");

            List userList =
                    sqlSession.selectList(User.class.getName()+".choose01", query);
            System.out.println(userList);


        } finally {
            MyBatisUtils.closeSqlSession(sqlSession);
        }
    }
四 小于號(hào)問題

映射文件

    
    

Java測試代碼

    @Test
    public void 小于號(hào)的解決問題(){
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.getSqlSession();

            List userList =
                    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);
        }
    }

圖解說明

請(qǐng)參考附錄1說明

五 動(dòng)態(tài)添加語句

映射文件

    
        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();
            List 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);
        }
    }
3.Map方式

映射方式

    
        DELETE FROM
            oa_user
        WHERE user_id in 
        
            #{shxt}
        
    

Java測試代碼

    @Test
    public void 傳遞Map刪除規(guī)則(){
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.getSqlSession();
            List tempList = 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);
        }
    }

圖解方式

4.批量添加

映射文件

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

用了轉(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

相關(guān)文章

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

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

    tuantuan 評(píng)論0 收藏0
  • 3.平凡之路-傳統(tǒng)模式添加操作

    摘要:回顧上節(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ù),那么下面我們使用容器傳...

    cucumber 評(píng)論0 收藏0
  • 5.平凡之路-查詢結(jié)果集簡單處理

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

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

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

    snifes 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<