MyBatis-特殊SQL的执行
2022/8/28 2:22:45
本文主要是介绍MyBatis-特殊SQL的执行,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 通过用户名模糊查询用户信息
SpecialSQLMapper.java
public interface SpecialSQLMapper { List<User> getUserByLike(@Param("mohu") String mohu); }
SpecialSQLMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.atguigu.mybatis.mapper.SpecialSQLMapper"> <!--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},'%') (sql中的字符串拼接方法)--> select * from t_user where username like "%"#{mohu}"%" </select> </mapper>
测试:
public class SpecialSQLMapperTest { @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. 批量删除
<!--void deleteMoreUser(@Param("ids") String ids);//ids:9,10--> <delete id="deleteMoreUser"> delete from t_user where id in(${ids}) </delete>
3. 动态设置表名查询数据
<!--List<User> getUserList(@Param("tableName") String tableName);--> <select id="getUserList" resultType="User"> select * from ${tableName} </select>
4. 获取自增的主键
useGeneratedKeys:表示当前添加功能使用自增的主键
keyProperty:将添加的数据的自增主键为实体类类型的参数的属性赋值
<!--void insertUser(User user);--> <!-- useGeneratedKeys:表示当前添加功能使用自增的主键 keyProperty:将添加的数据的自增主键为实体类类型的参数的属性赋值 --> <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","123456",23,"男","123@qq.com"); mapper.insertUser(user); System.out.println(user); }
这篇关于MyBatis-特殊SQL的执行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding