MyBatis特殊SQL的执行

文章目录

一、模糊查询

java 复制代码
 /**
     * 通过用户名模糊查询用户信息
     * @param mohu
     * @return
     */

    List<User> getUserByLike(@Param("mohu") String mohu);
xml 复制代码
<!--List<User> getUserByLike(@Param("mohu") String mohu);-->
    <select id="getUserByLike" resultType="com.itheima.mybatis.pojo.User">
        select * from tb_user where username like '%${mohu}%';
    </select>
java 复制代码
@Test
    public void testGetUserByLike(){
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        SpecialSQLMapper mapper = sqlSession.getMapper(SpecialSQLMapper.class);
        List<User> list = mapper.getUserByLike("a");
        list.forEach(System.out::println);

二、批量删除

java 复制代码
 /**
     * 批量删除
     * @param ids
     */
    void deleteMoreUser(@Param("ids") String ids);```
```xml
<!--void deleteMoreUser(@Param("ids") String ids);;-->
    <delete id="deleteMoreUser">
        delete from tb_user where id in ${ids};
    </delete>
java 复制代码
    /**
     * 批量删除
     */
 @Test
    public void testDeleteMoreUser() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        SpecialSQLMapper mapper = sqlSession.getMapper(SpecialSQLMapper.class);
        mapper.deleteMoreUser("9,10");
    }

三、动态设置表名

java 复制代码
/**
     *动态设置表名,查询用户信息
     * @param tableName
     * @return
     */
    List<User> getUserList(@Param("tableName") String tableName);
xml 复制代码
    <!--List<User> getUserList(String tableName);-->
    <select id="getUserList" resultType="User">
        select * from ${tableName};
    </select>
java 复制代码
    /**
     * 动态设置表名,查询用户信息
     */
    @Test
    public void testGetUserList() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        SpecialSQLMapper mapper = sqlSession.getMapper(SpecialSQLMapper.class);
        List<User> list = mapper.getUserList("tb_user");
        list.forEach(System.out::println);
    }

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

场景模拟:

t_clazz(clazz_id,clazz_name)

t_student(student_id,student_name,clazz_id)

1、添加班级信息

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

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

java 复制代码
/**
 * 添加用户信息
 * @param user
 * @return
 * useGeneratedKeys:设置使用自增的主键
 * keyProperty:因为增删改有统一的返回值是受影响的行数,因此只能将获取的自增的主键放在传输的参 
数user对象的某个属性中
 */
int insertUser(User user);
xml 复制代码
<!--int insertUser(User user);-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
 insert into t_user values(null,#{username},#{password},#{age},#{sex})
</insert>
java 复制代码
public void testJDBC(){
        try {
            Class.forName("");
            Connection connection = DriverManager.getConnection("","","");
            String sql = "insert into tb_user values()";
            PreparedStatement ps = connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
            ps.executeUpdate();
            ResultSet resultSet = ps.getGeneratedKeys();
            resultSet.next();
            resultSet.getInt(1);
        } catch (Exception e) {
            e.printStackTrace();
        }
相关推荐
小徐敲java4 小时前
通用mybatis-plus查询封装(QueryGenerator)
mybatis
OEC小胖胖6 小时前
Spring Boot + MyBatis 项目中常用注解详解(万字长篇解读)
java·spring boot·后端·spring·mybatis·web
计算机学姐6 小时前
基于SpringBoot+Vue的在线投票系统
java·vue.js·spring boot·后端·学习·intellij-idea·mybatis
落落落sss6 小时前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
罗曼蒂克在消亡9 小时前
2.3MyBatis——插件机制
java·mybatis·源码学习
cyt涛11 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
OLDERHARD15 小时前
Java - MyBatis(上)
java·oracle·mybatis
计算机学姐1 天前
基于SpringBoot+Vue的高校运动会管理系统
java·vue.js·spring boot·后端·mysql·intellij-idea·mybatis
我是浮夸1 天前
MyBatisPlus——学习笔记
java·spring boot·mybatis
编程、小哥哥1 天前
手写mybatis之Mapper XML的解析和注册使用
xml·java·mybatis