Mybatis中特殊SQL的执行的实现示例

 更新时间:2023年07月26日 09:05:06   作者:qq_55304388  
本文主要介绍了Mybatis中特殊SQL的执行的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、模糊查询

//通过用户名模糊查询用户信息
List<user> getUserByLike(@Param("mohu") String mohu);

这里给出三种写法

<!--List<User> getUserByLike(@Param("mohu") String mohu);-->
    <select id="getUserByLike" resultType="User">
        <!--select * from t_user where username like '%${mohu}%'-->
        <!--select * from t_user where username like concat('%',#{mohu},'%')-->
        <!--使用最多-->
        select * from t_user where username like "%"#{mohu}"%"
    </select>
@Test
    public void testGetUserByLike(){
        SqlSession sqlSession= SqlSessionUtil.getSqlSession();
        SpecialSQLMapper mapper=sqlSession.getMapper(SpecialSQLMapper.class);
        List<User> list= mapper.getUserByLike("a");
        list.forEach(System.out::println);
    }

2、批量删除

//批量删除
    Integer deleteMoreUser(@Param("ids") String ids);

注意这里不能用#{},因为它会自动加上单引号,会导致SQL语句变成 delete from t_user where id in(‘8,9’)

<!--Integer deleteMoreUser(@Param("ids") String ids);-->
    <delete id="deleteMoreUser">
        delete from t_user where id in(${ids})
    </delete>
@Test
    public void deleteMoreUser(){
        SqlSession sqlSession=SqlSessionUtil.getSqlSession();
        SpecialSQLMapper mapper=sqlSession.getMapper(SpecialSQLMapper.class);
        mapper.deleteMoreUser("8,9");
    }

3、动态设置表名

//动态设置表名,查询所有的用户信息
    List<User> getUserList(@Param("tablename") String tablename);

注意这里不能用#{},因为它会自动加上单引号,会导致SQL语句查询的表名多一个单引号

<!--List<User> getUserList(@Param("tablename") String tablename);-->
    <select id="getUserList" resultType="User">
        select * from ${tablename}
    </select>
@Test
    public void testGetUserList(){
        SqlSession sqlSession=SqlSessionUtil.getSqlSession();
        SpecialSQLMapper mapper=sqlSession.getMapper(SpecialSQLMapper.class);
        List<User> list=mapper.getUserList("t_user");
        list.forEach(System.out::println);
    }

4、添加功能获取自增的主键

//添加用户信息,并获取自增的主键
    void insertUser(User user);

useGeneratedKeys:表示当前添加功能使用自增的主键;
keyProperty:因为增删改有统一的返回值是受影响的行数,因此只能将获取的自增的主键放在传输的实体类类型的参数user对象的某个属性中

<!--void insertUser(User user);-->
    <insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
        insert into t_user values(null,#{username},#{password},#{age},#{gender},#{email})
    </insert>
@Test
    public void testInsertUser(){
        SqlSession sqlSession=SqlSessionUtil.getSqlSession();
        SpecialSQLMapper mapper=sqlSession.getMapper(SpecialSQLMapper.class);
        User user= new User(null,"xiaoming","123222",23,"男","123456@qq.com");
        mapper.insertUser(user);
        System.out.println(user);
    }

到此这篇关于Mybatis中特殊SQL的执行的实现示例的文章就介绍到这了,更多相关Mybatis 特殊SQL执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中数组与栈和堆之间的关系说明

    Java中数组与栈和堆之间的关系说明

    文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性
    2025-08-08
  • Intellij Idea修改代码方法参数自动提示快捷键的操作

    Intellij Idea修改代码方法参数自动提示快捷键的操作

    这篇文章主要介绍了Intellij Idea修改代码方法参数自动提示快捷键的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Java调用opencv实现图片矫正功能

    Java调用opencv实现图片矫正功能

    这篇文章主要为大家详细介绍了Java如何调用opencv实现图片矫正功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • SpringBoot + FFmpeg实现一个简单的M3U8切片转码系统

    SpringBoot + FFmpeg实现一个简单的M3U8切片转码系统

    使用大名鼎鼎的ffmpeg,把视频文件切片成m3u8,并且通过springboot,可以实现在线的点播。
    2021-05-05
  • Java基础知识之CharArrayWriter流的使用

    Java基础知识之CharArrayWriter流的使用

    这篇文章主要介绍了Java基础知识之CharArrayWriter流的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java Swing 只关闭当前窗体的实现

    Java Swing 只关闭当前窗体的实现

    这篇文章主要介绍了Java Swing 只关闭当前窗体的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • tdesign的文件上传功能实现(微信小程序+idea的springboot)

    tdesign的文件上传功能实现(微信小程序+idea的springboot)

    这篇文章主要介绍了tdesign的文件上传(微信小程序+idea的springboot)的相关知识,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-09-09
  • SpringBoot Redis批量存取数据的操作

    SpringBoot Redis批量存取数据的操作

    这篇文章主要介绍了SpringBoot Redis批量存取数据的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 手把手带你了解Java-Stream流方法学习及总结

    手把手带你了解Java-Stream流方法学习及总结

    这篇文章主要介绍了通过实例了解JavaStream流的方法学习和总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • Java中调用SQL Server存储过程详解

    Java中调用SQL Server存储过程详解

    这篇文章主要介绍了Java中调用SQL Server存储过程详解,本文讲解了使用不带参数的存储过程、使用带有输入参数的存储过程、使用带有输出参数的存储过程、使用带有返回状态的存储过程、使用带有更新计数的存储过程等操作实例,需要的朋友可以参考下
    2015-01-01

最新评论