六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
1.十一、MyBatis的逆向工程2.十、MyBatis的缓存3.九、MyBatis动态SQL4.八、(了解即可)MyBatis懒加载(或者叫延迟加载)5.七、MyBatis自定义映射resultMap
6.六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
7.四、MyBatis获取参数值的两种方式(重点)8.三、MyBatis核心配置文件详解@
六、MyBatis特殊的SQL
6.1 模糊查询
方式1:select * from litemall_user where username like '%${username}%'
(推荐)方式2:select * from litemall_user where username like concat('%',#{username},'%')
@Test
public void getListByParam(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
System.out.println(mapper.getListByParam("同学"));
}
List<User> getListByParam(@Param("username") String username);
<!--
方式1:select * from litemall_user where username like '%${username}%'
(推荐)方式2:select * from litemall_user where username like concat('%',#{username},'%')
-->
<select id="getListByParam" resultType="User">
select * from litemall_user where username like concat('%',#{username},'%')
</select>
6.2 动态设置表名
@Test
public void getListByTableName(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
System.out.println(mapper.getListByTableName("litemall_user"));
}
List<User> getListByTableName(@Param("tableName") String tableName);
<select id="getListByTableName" resultType="User">
select * from ${tableName}
</select>
6.3 校验名称唯一性
@Test
public boolean checkNameVerify(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
String username = "同学1";
Integer id = 9;
int result = mapper.checkNameVerify(username, id);
if(result >=1){
return Boolean.TRUE;
}
return Boolean.FALSE;
}
int checkNameVerify(@Param("username") String username, @Param("id") Integer id);
<select id="checkNameVerify" resultType="integer">
SELECT count(1) FROM litemall_user where username=#{username}
<if test="id != null and id != 0">
and id != #{id}
</if>
</select>
本人其他相关文章链接
1.一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程
2.二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)
3.三、MyBatis核心配置文件详解
4.四、MyBatis获取参数值的两种方式(重点)
5.五、MyBatis的增删改查模板(参数形式包括:String、对象、集合、数组、Map)
6.六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
7.七、MyBatis自定义映射resultMap
8.八、(了解即可)MyBatis懒加载(或者叫延迟加载)
9.九、MyBatis动态SQL
10.十、MyBatis的缓存
11.十一、MyBatis的逆向工程
12.十二、MyBatis分页插件
重要信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!