首页 > 数据库 >mybatis特殊sql的执行

mybatis特殊sql的执行

时间:2022-08-20 13:01:44浏览次数:58  
标签:自增 特殊 user sql mybatis where id User

特殊sql的执行

模糊查询

根据用户名模糊查询

List<User> selectLikeUserById(@Param("id")Integer id);

建议使用:直接用"%"#{value}"%"拼接

<select id="selectLikeUserById" resultType="User">
        select * from t_user where id like "%"#{id}"%"
    </select>

使用${value}

select * from t_user where username like '%${username}%'

使用mysql拼接关键字concat

select * from t_user where username like concat('%', #{username}, "%")

批量删除 (只能用$)

sql语句:

delete from t_user where id in(1,2,3)

由于in关键字里面无单引号,而#{}自带一个单引号这里只能用${}

Integer deleteIn(@Param("ids")String ids);
<delete id="deleteIn" parameterType="Integer">
    delete from t_user where id in (${ids})
</delete>

动态设置表名(只能用$)

sql语句:

selet * from t_tablename

由于mysql语句中,不能使用‘ ’ 引表名,因此这里只能用${}

List<User> selectUserByTable(@Param("tablename")String tablename);
 <select id="selectUserByTable" parameterType="User">
        select * from #{tablename}
    </select>

添加功能获取自增的主键(一对多/多对多关系获得自增的id)

  • useGeneraedKeys:设置当前标签中的sql使用了自增的主键

  • keyProperty:将自增的主键的值赋值给传输到映射文件中参数的某个属性

这里就是我们User的ID是自增的,如果我们想在插入的时候获取User的ID,这个ID是不能作为返回值返回的,我们可以使用一个User对象插入到表中,并且将自增的ID赋值给这个User对象的属性中

int insertUserGeneraedKeys(User user);
   <insert id="insertUserGeneraedKeys" parameterType="User" useGeneratedKeys="true" keyProperty="id">
        insert into t_user values (null, #{username}, #{password}, #{age}, #{sex}, #{email})
    </insert>

标签:自增,特殊,user,sql,mybatis,where,id,User
From: https://www.cnblogs.com/phonk/p/16607544.html

相关文章

  • mybats动态sql
    动态SQL根据特定条件动态拼装SQL的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点IF标签根据标签中test属性所对应的表达式来决定标签中的内容,是否拼接到语句中......
  • mybatis自定义参数
    首先我们先定义两个表t_emp/t_dept由于我们的pojo中,使用了驼峰命名法,而数据表中使用的是下划线命名法解决字段名和属性名不一致为字段起别名,保持与属性名一致select......
  • mybatis缓存
    MyBatis缓存只对查询功能有效一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访......
  • 基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据
                                                         ......
  • *和->的联系,bool的特殊性,重置表达式计算符号的计算规则
    (*p).mem==p->mem,这两个是相同的,->返回的是*p的那个东西的地址,需要编译器的支持才能取成员。对于bool类型来说,处在条件判断的位置上,也相当于显示调用下图,如果oper......
  • postgresql用户与权限管理
    pg使用角色的概念管理数据库访问权限,角色是一系列相关权限的集合。为了管理方便,通常把一系列先关的权限赋予给一个角色,如果哪个用户需要这些权限,就把这些角色赋予给响应的......
  • FreeSql笔记记录
    FreeSql的系列操作:freesql的操作有点类似于linq中的操作,不过freesql的操作是对数据库,但是linq的操作是对集合进行操作查看官方文档:https://freesql.net/guide/ 首先要......
  • linux 上特殊的权限位
    通常我们文件一般三种权限名称:读、写、执行标识:r、w、x二进制:4、2、1特殊权限也有三种名称:setuid、setgid、粘连位标识:s、s、t二进制:4、2、1setuid场......
  • MYSQL-->函数与约束条件
    函数用法函数最常用的地方就是查询语句处select函数(字段)from表名;select字段列表from表名groupby分组字段having函数(字段);字符串函数(字符串要用引......
  • ERROR "Host is blocked because of many connection errors; unblock with 'mysql
    ERRORcom.alibaba.druid.pool.DruidDataSource-createconnectionSQLException,url:jdbc:mysql://hadoop108:3306/FlinkEtl?useUnicode=true&characterEncoding=UTF-......