数据库中现有User表
Account表
User类
Account类
- 我们分析账户和用户表之间的关系
- 一个用户可以拥有多个账户
- 一个账户只能被一个用户拥有
- 用户和账户之间是一对多关系
- 账户和用户之间是一对一关系
1. 我们怎么查询一对一关系呢?(及查询账户的同时带有用户信息)
解决方式一 定义一个新的实体类继承Account类,并在其中定义需要从数据库中得到的字段,比如username,adress
- 我们在编写映射映射配置文件时
把数据库查询的列名与实体类名一一对应就可以封装对象返回啦,返回类型为新定义的实体类AccountWithUser
解决方式二 在Account类中持有User类的引用
- 我们在编写因素配置文件时,通过ResultMap对Account类的属性进行一一对应,用到association标签。
- association标签的用法 property对应Java类中的属性,javaType 对应 属性对应的Java类名(通常写全限定类名,而我们在主配置文件中)我们在typeAliases标签中写对应的包名都可以简写类名称,不需要写全限定类名
- 我们只需要在resultMap中配置好对应的信息即可
- 配置要求:property 类属性名,column 数据库字段名
- assocation中的property->type类中的引用类型名 assocation中的JavaType->type类中的引用类型的类名
- 对应sql语句的编写 resultMap指定自己编写的AccountMap
- 通过动态代理进行执行