关于这个问题最大的难题在于
最后将结果进行封装的时候,很难进行对数据的进行封装,假如最后我们想要得到的是一个包含两个表的中都存在的数据的类,那么我们必须对数据库查询返回的数据进行相关的封装(自动ORM失效)。
第一种方法:
在xml配置文件里做文章
首先我们将想要得到的数据拿出来
在拿到想要的数据后,我们自然想将这些数据进行一个封装起来。可是用什么进行封装呢?
自然而然地想到了resultMap
<resultMap id="passengerResultMap" type="com.qf.mybatis.part2.one2one.Passenger">
<id property="id" column="id"/>
<result property="name" column="name" />
<result property="sex" column="sex" />
<result property="birthday" column="birthday" />
<!-- 关系表中数据的封装规则 --> <!-- 指定关系表的实体类型 -->
<association property="passport" javaType="com.qf.mybatis.part2.one2one.Passport">
<id property="id" column="passport_id" />
<result property="nationality" column="nationality" />
<result property="expire" column="expire" />
<result property="passenger_id" column="passenger_id" />
</association>
</resultMap>
第二种方法:
其实一开始我也没想到第二种方法
我直接想到的就是既然我拿不到我想要的封装对象。那么我直接写一个实体类,里面放我想要的东西,最后直接将查到的数据进行封装就可以了。
方法确实有效
但是注意定义实体类的时候注意将属性名定义的与数据库拿到的数据的属性名相对应。
但是确实很繁琐。但是很容易实现。