最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年06月07日 14:37:12   作者:逆風(fēng)飛揚(yáng)fei  
這篇文章主要介紹了Mybatis CURD及模糊查詢功能的實(shí)現(xiàn),有查詢刪除,插入,更新功能,通過實(shí)例代碼講解的非常詳細(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實(shí)現(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();
    }

注意點(diǎn):增、刪、改操作需要提交事務(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及模糊查詢功能的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Mybatis 模糊查詢的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java RateLimiter的限流詳解

    Java RateLimiter的限流詳解

    這篇文章主要為大家詳細(xì)介紹了Java RateLimiter的限流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • SpringBoot配置SLF4J日志全過程

    SpringBoot配置SLF4J日志全過程

    這篇文章主要介紹了SpringBoot配置SLF4J日志全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java復(fù)制文件常用的三種方法

    Java復(fù)制文件常用的三種方法

    今天小編就為大家分享一篇關(guān)于Java復(fù)制文件常用的三種方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • SpringBoot?pdf打印及預(yù)覽(openhtmltopdf+freemarker)

    SpringBoot?pdf打印及預(yù)覽(openhtmltopdf+freemarker)

    這篇文章主要介紹了SpringBoot?pdf打印及預(yù)覽(openhtmltopdf+freemarker)
    2023-05-05
  • Java開發(fā)中最讓人頭疼的十個bug

    Java開發(fā)中最讓人頭疼的十個bug

    這篇文章主要給大家總結(jié)介紹了關(guān)于Java開發(fā)中最讓人頭疼的十個bug,同樣的bug信息,可能背后有千萬種原因,而我,永遠(yuǎn)都不知道到底是哪一個,努力通過代碼積累盡可能多的bug,并將它們進(jìn)行分類,可以幫你debug節(jié)省了時間,需要的朋友可以參考下
    2021-10-10
  • Springboot項(xiàng)目刪除項(xiàng)目同步target文件問題解決方案

    Springboot項(xiàng)目刪除項(xiàng)目同步target文件問題解決方案

    這篇文章主要介紹了Springboot項(xiàng)目刪除項(xiàng)目同步target文件問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • cookie、session和java過濾器結(jié)合實(shí)現(xiàn)登陸程序

    cookie、session和java過濾器結(jié)合實(shí)現(xiàn)登陸程序

    這篇文章主要為大家詳細(xì)介紹了cookie、session和java過濾器結(jié)合實(shí)現(xiàn)登陸程序的具體代碼,感興趣的朋友可以參考一下
    2016-05-05
  • java 反射機(jī)制

    java 反射機(jī)制

    本文主要介紹了java反射機(jī)制的相關(guān)知識,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Java導(dǎo)出Excel動態(tài)表頭的示例詳解

    Java導(dǎo)出Excel動態(tài)表頭的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java導(dǎo)出Excel動態(tài)表頭的相關(guān)知識,文中的示例代碼簡潔易懂,具有一定的借鑒價值,有需要的小伙伴可以了解下
    2025-02-02
  • JAVA設(shè)計模式之解釋器模式詳解

    JAVA設(shè)計模式之解釋器模式詳解

    這篇文章主要介紹了JAVA設(shè)計模式之解釋器模式詳解,解釋器模式是類的行為模式,給定一個語言之后,解釋器模式可以定義出其文法的一種表示,并同時提供一個解釋器,需要的朋友可以參考下
    2015-04-04

最新評論

中卫市| 澄江县| 临沂市| 营口市| 南部县| 乌鲁木齐市| 五家渠市| 定结县| 肥西县| 宁晋县| 上饶县| 麻江县| 阿图什市| 新源县| 通江县| 礼泉县| 武隆县| 浮梁县| 长沙县| 泰来县| 宾川县| 白玉县| 徐州市| 读书| 二手房| 康定县| 故城县| 昭平县| 烟台市| 辽阳县| 华坪县| 郓城县| 贵南县| 永定县| 昌江| 万载县| 宜丰县| 资阳市| 杭锦后旗| 上饶县| 郴州市|