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
- MyBatis注解方式与映射文件方式配合实现一对一,一对多,多对多(三)
- MyBatis注解方式与映射文件方式配合实现一对一,一对多,多对多(一)
- MyBatis注解方式与映射文件方式配合实现一对一,一对多,多对多(二)
- Hibernate 基于注解的方式 实现的关系映射案例(一对一关系,一对多关系,多对多关系)
- hibernate注解方式实现一对多映射
- hibernate注解方式实现一对多映射
- hibernate注解方式实现一对多映射
- hibernate注解方式实现一对多映射
- hibernate3注解方式实现一对多映射
- hibernate 注解方式,实现一对多映射
- hibernate注解方式实现一对多映射
- MyBatis一对多映射实现方式
- 使用注解方式实现mybatis一对多
- mybatis中一对一、一对多、多对多的实现方式
- mybatis映射 一对一、一对多、多对多高级映射
- [MyBatis日记](6)一对一与一对多映射
- mybatis中的高级映射一对一、一对多、多对多
- Mybatis(2、关系映射一对一、一对多、多对多)
- Android 事件分发机制
- springMvc配置tomcat时出现"No Spring WebApplicationInitializer types detected on classpath" 解决方法
- 如何编写属于自己的adb shell 命令。
- OpenWRT 编译 error GNU libiconv not in use but included iconv.h is from libiconv
- HDOJ 1282 回文数猜想
- MyBatis注解方式与映射文件方式配合实现一对一,一对多,多对多(三)
- 学习MySQL的一些记录笔记(2)11-06
- Android Logcat 分段打印较长的文本
- JAVA面试题通关点
- 关于this.getHibernateTemplate().update(entity)
- 洛谷 p1574 超级数
- Java的四种引用,强弱软虚,分别用到的场景
- DbUtils 结果集实例
- grub filesystem type unknown ---记一次引导错误解决日志