MyBatis学习笔记(七)—— 特殊SQL的执行

07、特殊SQL的执行

7.1、模糊查询

SQLMapper.java

/**
 * 根据用户名模糊查询用户信息
 */
List<User> getUserByLike(@Param("username") String username);

SQLMapper.xml

<!--List<User> getUserByLike(@Param("username") String 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>

7.2、批量删除

SQLMapper.java

/**
 * 批量删除
 */
int deleteMore(@Param("ids") String ids);

SQLMapper.xml

<!--int deleteMore(@Param("ids") String ids);-->
<delete id="deleteMore">
    delete from t_user where id in (${ids})
</delete>

7.3、动态设置表名

SQLMapper.java

/**
 * 查询指定表中的数据
 */
List<User> getUserByTableName(@Param("tableName") String tableName);

SQLMapper.xml

<!--List<User> getUserByTableName(@Param("tableName") String tableName);-->
<select id="getUserByTableName" resultType="User">
    select * from ${tableName}
</select>

7.4、添加功能获取自增的主键

t_clazz(clazz_id,clazz_name)

t_student(student_id,student_name,clazz_id)

1、添加班级信息

2、获取新添加的班级的id

3、为班级分配学生,即将某学生的班级id修改为新添加的班级的id

SQLMapper.java

/**
 * 添加用户信息
 */
void insertUser(User user);

SQLMapper.xml

<!--
    void insertUser(User user);
    useGeneratedKeys:设置当前标签中的sql使用了自增的主键
    keyProperty:将自增的主键的值赋值给传输到映射文件中参数的某个属性
-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
    insert into t_user values (null,#{username},#{password},#{age},#{sex},#{email})
</insert>

SQLMapperTest.java

@Test
public void insertUser() {
    SqlSession sqlSession = SqlSessionUtils.getSqlSession();
    SQLMapper sqlMapper = sqlSession.getMapper(SQLMapper.class);
    User user = new User(null,"赵六","123456",23,"男","zhaoliu@123.com");
    sqlMapper.insertUser(user);
    System.out.println(user);
}

运行结果:

User{id=9, username=‘赵六’, password=‘123456’, age=23, sex=‘男’, email=‘zhaoliu@123.com’}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值