欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis CURD及模糊查詢功能的實現(xiàn)

 更新時間:2021年06月07日 14:37:12   作者:逆風(fēng)飛揚fei  
這篇文章主要介紹了Mybatis CURD及模糊查詢功能的實現(xiàn),有查詢刪除,插入,更新功能,通過實例代碼講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

命名空間namespace:

在這里插入圖片描述

配置文件中namespace中的名稱為對應(yīng)Mapper接口或者Dao接口的完整包名,必須一致!

1.查詢(select)

select:

接口中的方法名與映射文件中的SQL語句ID 一一對應(yīng)

  • id
  • parameterType
  • resultType

案例:根據(jù)id查詢用戶

1.寫接口(在UserMapper中添加對應(yīng)的方法)

public interface UserMapper {
    //根據(jù)ID查詢用戶
    User getuserByID(int id);
    }

2.UserMapper.xml配置文件的編寫Sql語句

<select id="getuserByID" parameterType="int" resultType="com.xiong.pojo.User">
   	select * from mybatis.user where id = #{id};
</select>

3.測試

 @Test
    public void getUserID(){
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.getuserByID(4);
        System.out.println(user);
        sqlSession.close();
    }

注意:根據(jù)密碼和名字直接查詢用戶
使用萬能的Map方法
1.在接口方法中,直接傳遞Map;

User getuserByID2(Map<String,Object> map);

2.在編寫sql語句的時候,需要傳遞參數(shù)的類型,參數(shù)類型是map

 <select id="getuserByID2" resultType="com.xiong.pojo.User" parameterType="map">
        select * from mybatis.user where id = #{userID} and name =#{username};
    </select>

在這里插入圖片描述

此處的userID,username可以不是數(shù)據(jù)庫里面的字段,用map方法添加就可。

3.在使用方法的時候,Map的 key 為 sql中取的值即可,沒有順序要求!

@Test
    public void getUserID2(){
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        Map map= new HashMap<String, Object>();
        map.put("userID",2);

        map.put("username","gou");

        User user = mapper.getuserByID2(map);
        System.out.println(user);
        sqlSession.commit();
        sqlSession.close();
    }

在這里插入圖片描述

總結(jié):如果參數(shù)過多,我們可以考慮直接使用Map實現(xiàn),如果參數(shù)比較少,直接傳遞參數(shù)即可

2.插入(insert)

insert
1.在UserMapper中添加對應(yīng)的方法

int addUser(User user);

2.在UserMapper.xml中添加insert語句

<insert id="addUser" parameterType="com.xiong.pojo.User">
        insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
</insert>

3.測試

  @Test
    public void adduser(){
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.addUser(new User(4, "狗哥", "45412331"));
        if(i>0){
            System.out.println("插入成功");
        }
        //記得提交事物
        sqlSession.commit();
        sqlSession.close();
    }

注意點:增、刪、改操作需要提交事務(wù)!

3.更新(update)

1.編寫接口方法

int updateUser(User user);

2.編寫接口對應(yīng)的UserMapper.xml文件中的SQL

<update id="updateUser" parameterType="com.xiong.pojo.User">
    update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};
</update>

3.測試(記住一定要提交事物)

 @Test
    public void updateuser(){
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        System.out.println(sqlSession);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        int i = mapper.updateUser(new User(5, "hh", "55464545"));
        if(i>0){
            System.out.println("更新成功");
        }

        sqlSession.commit();
        sqlSession.close();
    }

4.刪除(delete)

1.編寫接口方法

int delete(int id);

2.編寫對應(yīng)配置文件的SQL

<delete id="delete" parameterType="int">
        delete from mybatis.user where id=#{id};
    </delete>

3.測試(記得要提交事物)

 @Test
    public void deleteuser(){
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        System.out.println(sqlSession);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        int i = mapper.delete(4);
        if(i>0){
            System.out.println("更新成功");
        }

        sqlSession.commit();
        sqlSession.close();
    }

總結(jié):所有的增刪改操作都需要提交事務(wù)!

5.模糊查詢(like)

直接在sql語句中拼接通配符,會引起sql注入

<!--    模糊查詢-->
    <select id="getUserListByLike" resultType="com.xiong.pojo.User">
        select * from mybatis.user where name like "%"#{value}"%";
    </select>

在這里插入圖片描述

測試:

 @Test
    public void getUserListByLike(){
        SqlSession sqlSession = MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> user = (List<User>) mapper.getUserListByLike("李");
        for (User user1 : user) {
            System.out.println(user1);
        }
        sqlSession.commit();
        sqlSession.close();
    }

以上就是Mybatis CURD及模糊查詢功能的實現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Mybatis 模糊查詢的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mybatis 級聯(lián)刪除的實現(xiàn)

    Mybatis 級聯(lián)刪除的實現(xiàn)

    這篇文章主要介紹了Mybatis 級聯(lián)刪除的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java中線程的sleep()方法和yield()方法的區(qū)別

    java中線程的sleep()方法和yield()方法的區(qū)別

    本文主要介紹了java中線程的sleep()方法和yield()方法的區(qū)別,Thread類的sleep()方法使線程休眠指定時間,不釋放鎖,而yield()提示調(diào)度器當(dāng)前線程愿意讓出CPU資源,不保證立即切換線程,感興趣的可以了解一下
    2024-10-10
  • SpringBoot中各種Controller的寫法

    SpringBoot中各種Controller的寫法

    這篇文章主要介紹了SpringBoot中各種Controller的寫法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java實現(xiàn)JS中的escape和UNescape代碼分享

    Java實現(xiàn)JS中的escape和UNescape代碼分享

    在PHP和Python中都有類似JS中的escape和UNescape函數(shù)的功能,那么Java語言中到底有沒有類似的方法呢?本文就來介紹一下Java實現(xiàn)JS中的escape和UNescape轉(zhuǎn)碼方法,需要的朋友可以參考下
    2017-09-09
  • Java?SE封裝、包、static關(guān)鍵字和代碼塊示例詳解

    Java?SE封裝、包、static關(guān)鍵字和代碼塊示例詳解

    這篇文章主要給大家介紹了關(guān)于Java?SE封裝、包、static關(guān)鍵字和代碼塊的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • java 使用idea將工程打成jar并創(chuàng)建成exe文件類型執(zhí)行的方法詳解

    java 使用idea將工程打成jar并創(chuàng)建成exe文件類型執(zhí)行的方法詳解

    這篇文章主要介紹了java 使用idea將工程打成jar并創(chuàng)建成exe文件類型執(zhí)行,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • SpringBoot項目如何打可執(zhí)行war包

    SpringBoot項目如何打可執(zhí)行war包

    最近小編做了一個springboot項目,最后需要打成war包在容器中部署,下面小編給大家分享下SpringBoot項目如何打可執(zhí)行war包,感興趣的朋友一起看看吧
    2020-04-04
  • Spring Cloud Nacos 和 Eureka區(qū)別解析

    Spring Cloud Nacos 和 Eureka區(qū)別解析

    Spring Cloud Nacos 和 Spring Cloud Eureka 都是 Spring Cloud 微服務(wù)框架中的服務(wù)注冊和發(fā)現(xiàn)組件,用于幫助開發(fā)者輕松地構(gòu)建和管理微服務(wù)應(yīng)用,這篇文章主要介紹了Spring Cloud Nacos 和 Eureka區(qū)別,需要的朋友可以參考下
    2023-08-08
  • Java生成二維碼可添加logo和文字功能

    Java生成二維碼可添加logo和文字功能

    這篇文章主要介紹了Java生成二維碼可添加logo和文字功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • Java中使用COS實現(xiàn)文件上傳功能

    Java中使用COS實現(xiàn)文件上傳功能

    cos是O'Rrilly公司開發(fā)的一款用于HTTP上傳文件的OpenSource組件。下面通過本文給大家分享使用COS實現(xiàn)文件上傳功能,感興趣的朋友一起看看吧
    2017-08-08

最新評論