文章目录
- 六、MyBatis特殊的SQL
- 6.1 模糊查询
- 6.2 动态设置表名
- 6.3 校验名称唯一性
六、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>