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

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

时间2025-06-14 14:23:40分类IT科技浏览3174
导读:2023-01-10...

2023-01-10

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

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

①EmployeeMapper.xml中的<mapper>标签内部

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

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动态化表名)

声明:本站所有文章                  ,如无特殊说明或标注           ,均为本站原创发布      。任何个人或组织   ,在未征得本站同意时                  ,禁止复制   、盗用           、采集                  、发布本站内容到任何网站      、书籍等各类媒体平台                 。如若本站内容侵犯了原著者的合法权益              ,可联系我们进行处理            。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
yolov4和yolov5哪个好(yolov7和yolov5对比有哪些优势?yolov7改进-yolov7详解) 网站优化是啥意思(网站优化有用吗)