网站首页 > 技术文章 正文
博主将会针对Java面试题写一组文章,包括J2ee,SQL,主流Web框架,中间件等面试过程中面试官经常问的问题,欢迎大家关注。一起学习,一起成长,文章底部有面试题。
Mysql:
(允许主键自增数据库)
数据库中配置主键自增,AUTO_INCREMENT
而在xml配置insert标签:
<insert id="insertObject" parameterType="com.xxxx.userDto" useGeneratedKeys="true" keyProperty="id"> </select>
在insert标签内useGeneratedKeys=“true”,Mybatis会调用JDBC的getGeneratedKeys方法,并将获取的主键值赋值给keyProperty 指定的列中。
Oracle:
(不支持主键自增数据库,一般开发工作中用序列代替,或者用32为随机数uuid代替id)
<selectKey keyColumn="id" resultType="long" keyProperty="id" order="BEFORE"> </selectKey>
selectKey 标签配置在insert标签之内,order属性值可为BEFORE 或 AFTER。
如果order配置的是before,系统会自动先执行selectKey标签里的sql语句,如
select 序列.nextval from dual
然后执行插入语句。如果为AFTER则相反。
面试拓展:
昨日回顾
1.MyBatis中的动态SQL是什么意思?
回答参考:更新表数据或者查询数据时,查询条件有时并非本次我们想要的,此时可以用if标签拼接处理sql查询条件。处理if标签,还有where,set,foreach等拼接标签。
2.解释一下MyBatis中命名空间(namespace)的作用。
Mybatis中namespace用于指向唯一的dao接口,映射唯一的dao接口,dao接口的方法对应mapper中的语句id名。
3.mybatis中 # 和 $ 的区别?
#会替换并加''引号,而$是直接替换,可能会导致sql注入,所以不建议在xml文中用$符。
今日试题
1.写一下mybatis的批量插入demo。
2.讲讲mybatis和jpa的区别。
-------------
写的不好,如果大家有更高的见解欢迎评论。
猜你喜欢
- 2025-07-27 MyBatis批量插入的3种方案对比,速度差10倍!
- 2025-07-27 [JPA教程]02.认识JPA的注解.md(jpa的@query注解)
- 2025-07-27 MyBatis配置详解:从入门到精通(mybatis配置文件详解)
- 2025-07-27 Mybatis Plus框架学习指南-第三节内容
- 2025-07-27 什么是实时数据同步?纯干货解读!(什么是实时数据传输)
- 2025-07-27 Mybatis Plus框架学习指南-第八节内容(常用的注解)
- 2024-10-27 一文看懂mycat配置--数据库的读写分离、分表分库
- 2024-10-27 基于Percona XtraBackup 实现全备&增量备份与恢复
- 2024-10-27 Java EE核心框架实战:如何使用MyBatis实现CURD-2种数据库
- 2024-10-27 mysql如何进行累加计算 mysql 变量累加
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)