美文网首页
2019-06-04

2019-06-04

作者: 赌未来_e1e8 | 来源:发表于2019-06-04 22:57 被阅读0次

一. 解决列名和属性名不一致的两个途径

1 定义列别名:

可以通过 列别名的方式将列名和属性保持一致 继续使用自动映射ResultType

2.使用ResultMap     

用于自定义映关系,可以自主设置列名和属性名的映射关系,使用resultMap,将不使用自动映射机制

注意:主键用 id  标签   非主键使用result 标签

二  业务装配:

mapper 层只做单表查询操作,在service层进行手动装配,实现业务装配

三  resultMap的N+1实现多对一

在mapper层 中的配置

<association> 用于关联一个对象

property:指定要关联的属性名

select:设定要继续引用的查询,即空间加id namespace+id

column:查询时需要传递的列的数据

四 resultMap的N+1方式实现多表查询一对多

mapper层

<collection>用于关联一个集合

property:指定要关联的属性名

select:设定要继续引用的查询,空间加id

column:查询时需要传递的列的数据

五   Auto—Mapping实现多表查询

主要是利用别名 

注意:别名出现特殊符号,是用~~符号引起来,Oracle 可以使用  “ ”  符号

六  注解:注解是用于描述代码的代码

什么时候使用:使用注解一般用于简化配置文件. 但是, 注解有时候也不

是很友好(有时候反而更麻烦), 例如动态 SQL.

注解简单好用 非常明了

注解关联查询

在学生实体类中定义一个对象clazz 作为班级对象

@One的作用是通过查询到的一个字段作为参数

里面的select=后面的是查询方法的地址  通过cid  返回班级信息,

对应column为cid为班级号

Mybatis运行过程涉及的类和接口

1.Resources类 用于加载MyBatis核心配置文件

2 XMLConfigBuilder类:用于解析xml文件(核心配置文件)

3 configuration类:用于存放xml文件解析后的结构

4DefaultSQlSessionFactory类:是SqlSession接口的实现类,创建

时需要使用configuration对象

5 SqlSession接口:是MyBatis操作的核心

6 DefaultSqlSession类:是SqlSession接口的实现类

7 TransactionFactory 接口:用于生产Transaction对象

8 用于操作数据库的事务对象

9 Executor 接口:

是MyBatis的核心执行器,类似于jdbc中的Statement,常用的实现类是SimpleExecutor

相关文章

网友评论

      本文标题:2019-06-04

      本文链接:https://www.haomeiwen.com/subject/icldxctx.html