Mybatis CURD及模糊查询功能的实现

 更新时间:2021年06月07日 14:37:12   作者:逆风飞扬fei  
这篇文章主要介绍了Mybatis CURD及模糊查询功能的实现,有查询删除,插入,更新功能,通过实例代码讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

命名空间namespace:

在这里插入图片描述

配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!

1.查询(select)

select:

接口中的方法名与映射文件中的SQL语句ID 一一对应

  • id
  • parameterType
  • resultType

案例:根据id查询用户

1.写接口(在UserMapper中添加对应的方法)

public interface UserMapper {
    //根据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();
    }

注意:根据密码和名字直接查询用户
使用万能的Map方法
1.在接口方法中,直接传递Map;

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

2.在编写sql语句的时候,需要传递参数的类型,参数类型是map

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

在这里插入图片描述

此处的userID,username可以不是数据库里面的字段,用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();
    }

在这里插入图片描述

总结:如果参数过多,我们可以考虑直接使用Map实现,如果参数比较少,直接传递参数即可

2.插入(insert)

insert
1.在UserMapper中添加对应的方法

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

注意点:增、删、改操作需要提交事务!

3.更新(update)

1.编写接口方法

int updateUser(User user);

2.编写接口对应的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.编写对应配置文件的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();
    }

总结:所有的增删改操作都需要提交事务!

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及模糊查询功能的实现的详细内容,更多关于Mybatis 模糊查询的资料请关注脚本之家其它相关文章!

相关文章

  • IDEA版最新MyBatis程序配置教程详解

    IDEA版最新MyBatis程序配置教程详解

    这篇文章主要介绍了IDEA版最新MyBatis程序配置教程详解,需要的朋友可以参考下
    2020-07-07
  • java 发送http和https请求的实例

    java 发送http和https请求的实例

    下面小编就为大家分享一篇java 发送http和https请求的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 快速了解Maven

    快速了解Maven

    这篇文章主要介绍了快速了解Maven,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java Web实现文件下载和乱码处理方法

    Java Web实现文件下载和乱码处理方法

    文件上传和下载是web开发中常遇到的问题。今天小编给大家分享下Java Web实现文件下载和乱码处理方法的相关资料,需要的朋友可以参考下
    2016-10-10
  • Java 17 更快的 LTS 节奏

    Java 17 更快的 LTS 节奏

    这篇文章主要介绍的是Java 17 更新后的LTS,现在 Java 17 的发布,让 Java 11 成了 LTS 系列的次新版本,下面我们就来看看Java 17 的更新 LTS有什么变化吧
    2021-09-09
  • Mybatis-Plus和Mybatis的区别详解

    Mybatis-Plus和Mybatis的区别详解

    这篇文章主要介绍了Mybatis-Plus和Mybatis的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java多线程的同步优化的6种方案

    Java多线程的同步优化的6种方案

    大家使用多线程无非是为了提高性能,在Java中,有多线程并发时,我们可以使用多线程同步的方式来解决内存一致性的问题。本文就详细的介绍了Java多线程同步优化,感兴趣的可以了解一下
    2021-05-05
  • JavaWeb实现文件的上传与下载

    JavaWeb实现文件的上传与下载

    这篇文章主要为大家详细介绍了JavaWeb实现文件的上传与下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Spring Security拦截器引起Java CORS跨域失败的问题及解决

    Spring Security拦截器引起Java CORS跨域失败的问题及解决

    这篇文章主要介绍了Spring Security拦截器引起Java CORS跨域失败的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java项目如何打包成Jar的实现步骤

    Java项目如何打包成Jar的实现步骤

    一般情况下我们都是使用Java项目直接部署发布,有时需要我们将写好的项目打成jar包,方便后期调用,本文主要介绍了Java项目如何打包成Jar,感兴趣的可以了解一下
    2023-11-11

最新评论