自学内容网 自学内容网

MyBatis中特殊SQL的执行

目录

1.模糊查询

2.批量删除

3.动态设置表名

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


1.模糊查询

List<User> getUserByLike(@Param("username") String username);
<select id="getUserByLike" resultType="com.atguigu.mybatis.pojo.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> userList = mapper.getUserByLike("an");
    userList.forEach(System.out::println);
}

2.批量删除

int deleteMore(@Param("ids")String ids);
<!-- 批量删除不能使用#{},因为#{}会自动添加单引号,语法错误,必须使用${}-->
<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 row = mapper.deleteMore("1,2,8");
    System.out.println(row);
}

3.动态设置表名

List<User> getUserByTableName(@Param("tableName") 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> tableName = mapper.getUserByTableName("t_user");
    tableName.forEach(System.out::println);
}

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

/**
 * 添加用户信息  添加功能获取自增的主键
 * @param user
 * @return
 * useGeneratedKeys:设置使用自增的主键
 * keyProperty:因为增删改有统一的返回值是受影响的行数,
 *              因此只能将获取的自增的主键放在传输的参数user对象的某个属性中
 */
int insertUser(User user);
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
    insert into t_user
    values (null, #{username}, #{password}, #{age}, #{sex}, #{email});
</insert>
pper>

原文地址:https://blog.csdn.net/Helen_1997_1997/article/details/143953326

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!