使用MyBatis的mapper接口调用时有哪些要求?Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?

使用MyBatis的mapper接口调用时有哪些要求?

1. Mapper接口方法名和mapper.xml中定义的每个sql的id相同

2.Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的 parameterType的类型相同

3.Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的 resultType的类型相同

4.Mapper.xml文件中的namespace即是mapper接口的类路径

Mybatis 动态 sql 有什么用?

可以在 Xml 映射文件内,以标签的形式编写动态 sql

Mybatis 动态 sql执行原理?

根据表达式的值完成逻辑判断并动态拼接 sql 的功能

Mybatis有哪些动态 sql?

 9 种动态 sql 标签:

trim | where | set | foreach | if | choose| when | otherwise | bind

Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?

trim | where | set | foreach | if | choose| when | otherwise | bind

通过标签引入 sql 片段,为不支持自增的主键生成策略标签

Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?

不同的 Xml 映射文件,如果配置了 namespace,那么 id 可以重复

如果没有配置 namespace,那么 id 不能重复

原因就是 namespace+id 是作为 Map的 key使用的,

如果没有 namespace,就剩下 id,id 重复会导致数据互相覆盖

有了 namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然也就不同

MyBatis实现一对一、一对多有几种方式?

联合查询嵌套查询

MyBatis实现一对一具体怎么操作的?

联合查询是几个表联合查询,只查询一次, 通过在resultMap里面配置 association节点配置一对一的类就可以完成

嵌套查询是先查一个表,根据这个表里面结果的外键id,再另外一个表里面查询数据,也是通过association配置,但另外一个表的查询通过select属性配置

MyBatis实现一对多具体怎么操作的?

联合查询是几个表联合查询,只查询一次,通过在resultMap里面的 collection节点配置一对多的类就可以完成

嵌套查询是先查一个表,根据这个表里面结果的外键id,再另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置

猜你喜欢

转载自blog.csdn.net/qq_52963857/article/details/131800523