mysql获取自增主键(学习笔记——Mybatis中获取主键自增数据;获取数据库受影响行数;Mybatis中参数传递问题)
2023-01-10
一 、Mybatis中获取主键自增数据
要获取自增数据时 ,需要在映射文件中的“<insert> ”中添加两个属性 ,例如获取自增的id
①EmployeeMapper.xml中的<mapper>标签内部
②之后在测试文件中的测试自增关键代码
之后进行运行 ,结果中出现员工编号 ,代码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 、命名参数
在接口中声明函数使,传递的参数使用的是注解 ,用法如下:
在映射文件中参数可以直接使用注解中的命名值 。
5 、Map参数
Mybatis支持直接Map入参 ,map的key=参数key
四、#与$的区别
1 、#与$的区别
(1)#:底层执行SQL语句的对象,使用PreparedStatement ,预编译SQL ,防止SQL注入隐患 ,相对比较安全
(2)$:底层执行SQL语句的对象使用Statement对象 ,使用拼接方式 ,未解决SQL注入安全隐患 ,相对不安全 。
2 、#与$使用场景
(1)#:sql占位符位置均可使用#
(2)$:#解决不了的参数传递问题 ,均可以交给$处理(如:form动态化表名)
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!