MyBatis注解方式与映射文件方式配合实现一对一,一对多,多对多(三)

来源:互联网 发布:数据共享与交换 编辑:程序博客网 时间:2024/06/05 05:12

MyBatis注解方式与映射文件方式配合实现多对多

MyBatis注解方式实现多对多,配置文件与一对多一样,这里主要展示的是DAO接口的代码。
这是单纯用注解实现多对多,代码如下:

package com.dao;import java.util.List;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Many;import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.ResultMap;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select;import com.entity4.Group;import com.entity4.User;public interface GroupDao {    @Select("select * from groups")    @Results(        {            @Result(column="groupId",property="groupId",id=true),            @Result(column="groupName",property="groupName"),            @Result(column="groupId",property="userSet",many = @Many(select="getUser"))        }    )    public List<Group> getGroup();    @Select("select * from user2 where userId in (select userId from group_user where groupId = #{groupId} )")    @Results(        {            @Result(column="userId",property="userId",id=true),            @Result(column="userName",property="userName"),        }    )    public List<User> getUser();}

以下是注解配合xml映射文件的方式实现多对多,这种用法 配置文件 configuration.xml 一定要配置resource=”com/dao/groupMapper.xml” /> , mapper.xml文件一定要配置namespace=”com.dao.GroupDao”>
DAO接口GroupDao.java代码如下:

/**     * 这种用法  配置文件 mapper.xml 一定要      * <mapper resource="com/dao/groupMapper.xml" />  >   <mapper namespace="com.dao.GroupDao">     * @return     */    @Select("select * from groups")    @ResultMap("GroupMap")    public List<Group> getGroup2();    @Select("select * from user2 where userId in (select userId from group_user where groupId = #{groupId} )")    @ResultMap("User2Map")    public List<User> getUser2();

一对一,一对多也是可以用注解和xml映射文件相互配合使用的,也是类似
groupMapper.xml映射文件代码如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.dao.GroupDao">    <resultMap type="Group" id="GroupMap">        <id column="groupId" property="groupId"/>        <result column="groupName" property="groupName"/>        <collection property="userSet" column="groupId" select="getUser2"></collection>    </resultMap>    <resultMap type="User2" id="User2Map">        <id column="userId" property="userId"/>        <result column="userName" property="userName"/>    </resultMap></mapper>

测试项目目录如下:

这里写图片描述

阅读全文
1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在北京怎么办健康证 健康证无法下载怎么办 健康证下载不了怎么办 北京办理健康证怎么办 北京的健康证怎么办 健康证丢了怎么办 健康证吃宵夜怎么办 合肥办健康证怎么办 个人办理健康证怎么办 身份证丢失怎么办健康证 个人怎么办武汉健康证 山海关古御壹号怎么办房本? 车玻璃被炮烧了怎么办 奔驰钥匙没电怎么办 婚内买的车离婚怎么办 离心风机噪音大怎么办 匹凸匹被st五牛怎么办 考不进去中学怎么办 教师体检来例假怎么办 老板拖欠农民工工资怎么办 公司破产拖欠员工工资怎么办 白玉蜗牛下蛋了怎么办 黄牛卖不出的票怎么办 鸡受风寒不产蛋怎么办 蛋鸡感冒不下蛋怎么办 牛肉煮老了怎么办 牛肉炖碎了怎么办 比值审敛法等于1怎么办 华为手机停止运行怎么办 易事通卡怎么办延期 三星手机照相机故障怎么办 凌晨一点到机场怎么办 凌晨3点醒来怎么办 凌晨四五点咳嗽怎么办 凌晨4点大便怎么办 熊猫小课付了费怎么办 华为手机系统升级后卡机怎么办 孕妇汗脚脚臭怎么办 巴基斯坦留学生丢失护照怎么办 vivox20耳机进水了怎么办 轴圆齿之间间隙大怎么办