栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis-获取参数/普通查询/模糊查询/批量删除/动态表名/添加时获取主键

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis-获取参数/普通查询/模糊查询/批量删除/动态表名/添加时获取主键

目录

一、获取参数

二、普通查询

2.1 返回List集合

2.2 查询单个数据(Integer/String)

2.3 以Map的形式返回单条数据

2.4 以Map的形式返回多条数据

三、模糊查询

四、批量删除

五、动态设置表名

六、Insert 时得到自增主键


一、获取参数

        MyBatis获取参数值的两种方式:${} 和 #{}

        ${}的本质就是字符串拼接,#{}的本质就是占位符赋值

         ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号

        方便起见,还是推荐用#{}的形式。

        获取参数的方式有好几种,为了规范化和容易记忆,我们统一为两种方式:

        1.实体类型的参数

                如User、Employee,参数格式:#{属性名}

void insertUser(User user);

        insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})

        2.其他类型(单个/多个参数)

                采用注解的方式:在定义mapper接口时形参前加@Param注解。

                此时,会将这些参数放在map集合中,以@Param注解的value属性值为键,以参数为值;若没有指明,则以 param1,param2...为键,以参数为值;

User getUserByIdAndName(@Param("uid") Integer id, @Param("uname") String username);
 
        select * from t_user where id=#{uid} and username=#{uname}
 

二、普通查询

2.1 返回List集合
List getAllUsers();

        select count(*) from t_user

2.3 以Map的形式返回单条数据
Map getUserMapById(@Param("id") Integer id);

    select * from t_user

        方式二:多个map集合最终以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的 map集合

@MapKey("id")
Map getAllUserToMap();//以每条记录的id为key,每条记录为value

        select * from t_user where username like "%"#{String}"%"

        注意不能写成"%#{String}%",这样会把参数识别为字符串。

四、批量删除

        单独提及这个操作的原因是这个操作只能用 ${ } 而不能用 #{ } ,因为#{}会自动加引号,识别为字符串。

void deleteUsers(@Param("ids") String ids);
 
        delete from t_user where id in(${ids})

五、动态设置表名

        假如我们要把表名作为参数传入SQl语句时,必须使用 ${ },因为 #{ } 会自动加引号,而表名是不允许加引号的。 

List getUsersByTableName(@Param("table") String tableName);

六、Insert 时得到自增主键

        有时候我们向有自增主键的表插入一条记录时,希望这条记录的自增主键值能够在插入的同时保存到java实体类的对象中,而不是进行二次查询,那就应该使用如下格式:

void insertUser(User user);

        insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})

        这样一来,插入记录的同时,我们插入的user对象的id值也就被赋上了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号