首页 > 其他分享 >Mybatis

Mybatis

时间:2023-11-12 19:00:50浏览次数:30  
标签:传参 xml mapper paramMap emp sql Mybatis


1.Mybatis快速入门

(1)写出实体类的javabean形式

(2)创建一个mapper接口,里面提供方法

(3)创建mapper接口的xml映射文件,里面编写查询数据库的语句

(4)创建mybatis核心配置文件mybatis-config.xml

(5) 进行测试

mybatis其实是封装了ibatis,对技术进行了优化,方便了开发。

2.sql语句传参

#{}方式传参是将sql语句中的?转换为占位符

${}方式传参是对sql语句进行字符串的拼接,会存在sql拼接注入的问题

实际开发中用#{}方式进行sql语句传参

3.数据传参

3.1单个数据类型传参

mapper.xml文件中sql语句传入参数方式为#{参数},当传入的参数为一个数据时,参数的名字任意但一般用接口中方法的传入参数。

3.2实体类对象传值

mapper接口方法:

int insertEmployee(Employee employee);

mapper.xml映射文件:

<insert id="insertEmployee">
  insert into t_emp(emp_name,emp_salary) values(#{empName},#{empSalary})
</insert>

映射文件中传值为实体类的属性名

3.3多个数据类型传参

当需要传入的参数为多个时,就不能随意起名,有以下两种方案:

(1)在mapper文件的方法中,每个需要传入的参数前加上@param注解,指定传入参数的名称.

(2)在xml映射文件中以arg0,arg1,arg2......方式传参,此方式为mybatis的默认传参方式.

推荐使用第一种方案

3.4Map集合数据

int updateEmployeeByMap(Map<String, Object> paramMap);
<update id="updateEmployeeByMap">

  update t_emp set emp_salary=#{empSalaryKey} where emp_id=#{empIdKey}

</update>
Map<String, Object> paramMap = new HashMap<>();
  paramMap.put("empSalaryKey", 999.99);
  paramMap.put("empIdKey", 5);
  int result = mapper.updateEmployeeByMap(paramMap);

标签:传参,xml,mapper,paramMap,emp,sql,Mybatis
From: https://blog.51cto.com/u_16072958/8330480

相关文章

  • java项目实战-mybatis-基本用法02接口绑定实现类-day23
    目录1.复习什么是接口什么是类?2.mybatis接口绑定实现类来实现查询3.参数的传递4插入数据1.复习什么是接口什么是类?publicinterfaceSpeak{voidsay();}Speak这个接口里面定义了say方法所有实现了Speak的类都必须实现say方法publicclassChineseimpl......
  • 简单全面的mybatis详解
    1、前言MyBatis是一款ORM(Object-RelationalMapping)框架,其主要用于将Java对象与关系数据库之间进行映射,凭借其轻量性、稳定性以及广泛的开源社区其受到了广大开发者的追捧。那MyBatis为我们做了哪些事情呢?其实,总结来看主要有如下几点:SQL映射配置:MyBatis使用XML或注解配置文件来定义......
  • Mybatis-Plus 使用隐患,太坑了!
    作者:糊涂码链接:https://juejin.cn/post/7156428078061895710前言MP从出现就一直有争议感觉一直都存在两种声音like:很方便啊通过函数自动拼接Sql不需要去XML再去使用标签之前一分钟写好的Sql现在一秒钟就能写好简直不要太方便dislike:侵入Service层不好维护可......
  • 实现MyBatisPlus自定义sql注入器
    目标:新增mysql下的插入更新的语法INSERTINTO%s%sVALUES%sONDUPLICATEKEYUPDATE%s新增方法类,新增的方法名称为insertOrUpdate和insertOrUpdateBatch方法,但其mapper层的方法名为insertOrUpdate方法importcom.baomidou.mybatisplus.annotation.IdType;importcom.b......
  • 手把手教你如何扩展(破解)mybatisplus的sql生成 | 京东云技术团队
    mybatisplus的常用CRUD方法众所周知,mybatisplus提供了强大的代码生成能力,他默认生成的常用的CRUD方法(例如插入、更新、删除、查询等)的定义,能够帮助我们节省很多体力劳动。他的BaseMapper中定义了这些常用的CRUD方法,我们在使用时,继承这个BaseMapper类就默认拥有了这些能力。如果我......
  • mybatis-plus 根据当前时间,判断检索
    <iftest="timeStatus!=nullandtimeStatus.trim()!=''"><iftest="timeStatus==1"><![CDATA[ANDDATE_FORMAT(now(),'%Y-%m-%d%H:%i:%S')<DATE_FORMAT(start_date,'%Y-%m-%d......
  • mybatis中日期时间比较遇到得问题
    今天进行下面得查询得时候,总是报:Cause:java.lang.IllegalArgumentException:invalidcomparison:java.time.LocalDateandjava.lang.String,提示不能将LocalDate类型与String类型进行比较,刚开始一直在检查<if>下得条件,寻思是不是类型写的不对,后来才发现是<if>标签中得判断问题,......
  • mybatis
    5.解决属性名和字段名不一致的问题解决方法:起别名ResultMap6.日志6.1日志工厂如果一个数据库出现了异常,我们经常需要排错,日志是最好的助手。曾经:sout,debug现在:日志需要掌握的:LOG4JSTDOUT_LOGGING至于具体使用哪一个,在MyBatis中设置。 需要在核心配置文......
  • mybatis使用id集合查询数据
    dao层intdelUser(@Param("menuId")IntegermenuId,@Param("idList")List<String>idList);xml层<deleteid="delUser">deleteFROMuser_role_menuWHEREmenu_id=#{menuId}ANDuser_idNOTIN<f......
  • IDEA 集成 EasyCode 插件,快速生成自定义 mybatisplus 代码
    IDEA集成easyCode插件在idea插件市场中,搜索EasyCode插件,下载并进行安装EasyCode插件介绍1.修改作者名称EasyCode插件可以修改作者名称,即生成代码后,注释中自动添加相应作者的姓名。2.TypeMapperTypeMapper指的是生成mapper.xml文件中数据库中的字段和java......