学习笔记——Mybatis中获取主键自增数据;获取数据库受影响行数;Mybatis中参数传递问题()

  本篇文章为你整理了学习笔记——Mybatis中获取主键自增数据;获取数据库受影响行数;Mybatis中参数传递问题()的详细内容,包含有 学习笔记——Mybatis中获取主键自增数据;获取数据库受影响行数;Mybatis中参数传递问题,希望能帮助你了解 学习笔记——Mybatis中获取主键自增数据;获取数据库受影响行数;Mybatis中参数传递问题。

  一、Mybatis中获取主键自增数据

  要获取自增数据时,需要在映射文件中的“ insert ”中添加两个属性,例如获取自增的id

  ①EmployeeMapper.xml中的 mapper 标签内部

  

 insert id="insertEmployee" useGeneratedKeys="true" keyProperty="id" 

 

   INSERT INTO

   tbl_employee(last_name,email,salary)

   VALUES

   (#{lastName},#{email},#{salary})

   /insert

 

  ②之后在测试文件中的测试自增关键代码

  

Employee employee = new Employee(null,"pingp","pingp@163.com",50.0);

 

  //测试添加员工信息

  employeeMapper.insertEmployee(employee);

  //查询刚刚添加员工的id

  System.out.println("employee.getId() = " + employee.getId());

 

  之后进行运行,结果中出现员工编号,代码OK。

  ③说明:useGeneratedKeys:启用主键生成策略(返回值是true);keyProperty:设置存储属性值

  二、获取数据库受影响行数

  直接将接口中方法的返回值设置为int或boolean即可

  (1)设置为int:表示受影响的行数

  (2)设置为boolean:表示数据库中的数据是否受到影响

  三、Mybatis中参数传递问题

  1、单个普通参数

  可以任意使用:参数数据类型、参数名称不用考虑。

  即如果是单个参数时,在映射文件中,在“#{}”内部填写的参数可以是任意的字母,但一般还是建议见名知意。

  2、多个普通参数

  Mybatis底层封装Map结构,封装key为param1、param2...(或者是arg0、arg1、...),即在映射文件中“#{}”传递参数的写法。

  3、POJO参数

  Mybatis支持POJO入参,参数key是POJO中属性

  在接口中声明的函数的参数是存放在“POJO”文件夹下类的对象

  在映射文件中在传参数语句中,等号左边放置的是数据库中的字段,等号的右边存放的是“#{类中的属性}”

  4、命名参数

  在接口中声明函数使,传递的参数使用的是注解,用法如下:

  

 /**

 

   * 功能:通过命名参数查询员工信息

   * @param lastname

   * @param salary

   * @return

   public List Employee selectEmployeeByNamed(@Param("lastName")String lastname,@Param("salary")double salary);

 

  在映射文件中参数可以直接使用注解中的命名值。

  5、Map参数

  Mybatis支持直接Map入参,map的key=参数key

  四、#与$的区别

  1、#与$的区别

  (1)#:底层执行SQL语句的对象,使用PreparedStatement,预编译SQL,防止SQL注入隐患,相对比较安全

  (2)$:底层执行SQL语句的对象使用Statement对象,使用拼接方式,未解决SQL注入安全隐患,相对不安全。

  2、#与$使用场景

  (1)#:sql占位符位置均可使用#

  (2)$:#解决不了的参数传递问题,均可以交给$处理(如:form动态化表名)

  

  以上就是学习笔记——Mybatis中获取主键自增数据;获取数据库受影响行数;Mybatis中参数传递问题()的详细内容,想要了解更多 学习笔记——Mybatis中获取主键自增数据;获取数据库受影响行数;Mybatis中参数传递问题的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: