接口类综合代码:
public interface SQLMapper {
/**
* 根据用户名模糊查询用户信息
*/
List<User> getUserByLike(@Param("username") String username);
/**
* 批量删除
*/
int deleteMore(String ids);
/**
* 查询指定表中的数据
*/
List<User> getUserByTableName(String tableName);
/**
* 添加用户
*/
void insetUser(User user);
}
1、模糊查询
SQLMapper类:
public interface SQLMapper {
/**
* 根据用户名模糊查询用户信息
*/
List<User> getUserByLike(@Param("username") String username);
}
SQLMapper.xml:
<!-- List<User> getUserByLike(@Param("username") String username);-->
<!-- 使用#{},因为包括在单引号里,会被认为是字符串的一部分:select * from t_user where username like '%#{username}%'-->
<!-- 三种方式-->
<select id="getUserByLike" resultType="User">
<!-- 第一种 select * from t_user where username like '%${username}%'
第二种 select * from t_user where username like concat('%', #{username}, '%')-->
<!--第三种 推荐使用-->
select * from t_user where username like "%"username"%"
</select>
测试类:
@Test
public void testGetUserByLike(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
List<User> user = mapper.getUserByLike("RUOYI");
System.out.println(user);
}
2、批量删除
SQLMapper类:
public interface SQLMapper {
/**
* 批量删除
*/
int deleteMore(String ids);
}
SQLMapper.xml:
<!-- int deleteMore(String ids);-->
<!-- 不能使用#{},因为他会自动添加单引号,变成delete from t_user where id in ('9,10,11')-->
<delete id="deleteMore">
delete from t_user where id in (${ids})
</delete>
测试类:
@Test
public void testDeleteMore(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
int result = mapper.deleteMore("12, 13");
System.out.println(result);
}
3、动态设置表名
SQLMapper类:
public interface SQLMapper {
/**
* 查询指定表中的数据
*/
List<User> getUserByTableName(String tableName);
}
SQLMapper.xml:
<!-- List<User> getUserByTableName(String tableName);-->
<select id="getUserByTableName" resultType="User">
select * from ${tableName}
</select>
测试类:
@Test
public void testGetUserByTableName(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
List<User> t_user = mapper.getUserByTableName("t_user");
System.out.println(t_user);
}
4、添加功能获取自增的主键
SQLMapper类:
public interface SQLMapper {
/**
* 添加用户
*/
void insetUser(User user);
}
SQLMapper.xml:
<!-- void insetUser(User user);-->
<!-- 方法的返回值是固定的
useGeneratedKeys 设置当前标签中的sql使用了自增的主键 (id)
keyProperty 将自增的主键的值 赋值给 传输到映射文件中的参数的某个属性(user.id)
-->
<insert id="insetUser" useGeneratedKeys="true" keyProperty="id">
insert into t_user values(null, #{username}, #{password},#{age},#{gender},#{email})
</insert>
测试类:
@Test
public void testInsetUser(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
mapper.insetUser(new User(null, "兔兔","111",11,"f","abc@qq.com"));
}