User表
Account表
應用:想要實現打印account的時候同時打印user的信息
1. mybatis主配置文件填寫dao文件的映射
<mappers>
<package name="cn.timer.dao">
</package>
</mappers>
Dao目錄下是User以及Account在DAO層的接口
IAccountDao接口的方法爲 List<Account> findAll();
2. 設置IAccountDao.xml
sql語句返回的爲:user account.id account.uid
需要使用自定義的ResultMap
<mapper namespace="cn.timer.dao.IAccountDao">
<resultMap id="accountUserMap" type="cn.timer.domain.Account">
// property 爲pojo類中的屬性 aid爲數據庫內的id,這裏的aid是select語句返回的aid
<id property="id" column="aid"></id>
<result property="uid" column="uid"></result>
<result property="money" column="money"></result>
//javatype用來提示封裝了哪個對象
<association property="user" column="uid" javaType="cn.timer.domain.User">
<id property="id" column="id"></id>
<result column="username" property="username"></result>
<result column="address" property="address"></result>
<result column="sex" property="sex"></result>
<result column="birthday" property="birthday"></result>
</association>
</resultMap>
<select id="findAll" resultMap="accountUserMap">
select u.*,a.id as aid ,a.uid from account a, user u where u.id = a.uid
</select>
</mapper>
3.輸出
一對多的情況:
一個用戶擁有多個賬戶,輸出這個用戶的所有賬戶信息
1.配置resultmap
<mapper namespace="cn.timer.dao.IUserDao">
<resultMap id="userAccountMap" type="cn.timer.domain.User">
<id property="id" column="id"></id>
<result column="username" property="username"></result>
<result column="address" property="address"></result>
<result column="sex" property="sex"></result>
<result column="birthday" property="birthday"></result>
<collection property="accounts" ofType="cn.timer.domain.Account">
<id property="id" column="aid"></id>
<result property="uid" column="uid"></result>
<result property="money" column="money"></result>
</collection>
</resultMap>
<select id="findAll" resultMap="userAccountMap">
SELECT u.*, a.id as aid, a.uid as uid ,a.money as money FROM user u ,account a where u.id = a.uid
</select>
<select id="findById" parameterType="INT" resultType="cn.timer.domain.User">
select * from user where id= #{uid}
</select>
</mapper>
2.user實體中加入
private List<Account>accounts; 方法
3.輸出