结果集映射使用注解(三)
来源:互联网 发布:淘宝智能旺铺多少钱 编辑:程序博客网 时间:2024/04/29 09:16
public interface GradeMapper {
//映射一对多
@Results(
{
@Result(id=true,property="gid",column="gid"),
@Result(property="gnamed",column="gname"),
@Result(property="students",column="gid",javaType=List.class,many=@Many(select="cn.et.lesson3.resultMap.annotion.StudentMapper.queryStudentByGid"))
})
@Select("select * from grade where gid=#{0}")
public abstract Grade queryGrade(String gid);
@Results({
@Result(property="gnamed",column="gname")
})
@Select("select * from grade where gid=#{0}")
public abstract Grade queryGradeByGid(int gid);
}
public interface StudentMapper {
//映射多对一
@Results({
@Result(property="grade",column="gid",one=@One(select="cn.et.lesson3.resultMap.annotion.GradeMapper.queryGradeByGid"))
})
@Select("select * from student where sid=#{0}")
public Student queryStudent(int sid);
@Select("select * from student where gid=#{0}")
public List<Student> queryStudentByGid(int sid);
}
测试方法:
private SqlSession getSession() throws IOException {
// mybatis核心配置文件路径
String resource = "cn/et/lesson3/resultMap/annotion/mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 工厂类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
// session操作的是指向sql语句的一个唯一标识符
SqlSession openSession = sqlSessionFactory.openSession();
return openSession;
}
@Test
public void testManytoOne() throws IOException {
SqlSession openSession = getSession();
StudentMapper mapper = openSession.getMapper(StudentMapper.class);
Student queryStudent = mapper.queryStudent(1);
System.out.println(queryStudent.getSname()+"----"+queryStudent.getGrade().getGid());
}
@Test
public void testOnetoMany() throws IOException {
SqlSession openSession = getSession();
GradeMapper mapper = openSession.getMapper(GradeMapper.class);
Grade queryGrade = mapper.queryGrade("2");
System.out.println(queryGrade.getGid()+"---"+queryGrade.getGnamed());
for(Student tmp: queryGrade.getList()){
System.out.println(tmp.getSname());
}
}
//映射一对多
@Results(
{
@Result(id=true,property="gid",column="gid"),
@Result(property="gnamed",column="gname"),
@Result(property="students",column="gid",javaType=List.class,many=@Many(select="cn.et.lesson3.resultMap.annotion.StudentMapper.queryStudentByGid"))
})
@Select("select * from grade where gid=#{0}")
public abstract Grade queryGrade(String gid);
@Results({
@Result(property="gnamed",column="gname")
})
@Select("select * from grade where gid=#{0}")
public abstract Grade queryGradeByGid(int gid);
}
public interface StudentMapper {
//映射多对一
@Results({
@Result(property="grade",column="gid",one=@One(select="cn.et.lesson3.resultMap.annotion.GradeMapper.queryGradeByGid"))
})
@Select("select * from student where sid=#{0}")
public Student queryStudent(int sid);
@Select("select * from student where gid=#{0}")
public List<Student> queryStudentByGid(int sid);
}
测试方法:
private SqlSession getSession() throws IOException {
// mybatis核心配置文件路径
String resource = "cn/et/lesson3/resultMap/annotion/mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 工厂类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
// session操作的是指向sql语句的一个唯一标识符
SqlSession openSession = sqlSessionFactory.openSession();
return openSession;
}
@Test
public void testManytoOne() throws IOException {
SqlSession openSession = getSession();
StudentMapper mapper = openSession.getMapper(StudentMapper.class);
Student queryStudent = mapper.queryStudent(1);
System.out.println(queryStudent.getSname()+"----"+queryStudent.getGrade().getGid());
}
@Test
public void testOnetoMany() throws IOException {
SqlSession openSession = getSession();
GradeMapper mapper = openSession.getMapper(GradeMapper.class);
Grade queryGrade = mapper.queryGrade("2");
System.out.println(queryGrade.getGid()+"---"+queryGrade.getGnamed());
for(Student tmp: queryGrade.getList()){
System.out.println(tmp.getSname());
}
}
阅读全文
0 0
- 结果集映射使用注解(三)
- 三(二)mybatis接口映射sql使用注解
- Mybatis高级映射结果集---注解---(一对多,多对一)
- MyBatis中的结果集映射---接口全注解
- Hibernate4映射之三: many2many单向映射(注解方式)
- Hibernate4映射之三: many2many双向映射(注解方式)
- 结果集映射(一)
- MyBatis框架核心之(三)注解使用接口映射
- 18、结果集映射的简单使用
- springmvc(三)注解的处理器映射器和适配器
- 结果集映射通过xml(二)
- Mybatis3结果集映射
- 复杂结果集映射
- MyBatis结果集映射
- structs2学习(三):使用公用结果集
- Hibernate使用注解映射取代映射文件
- Hibernate使用注解映射取代映射文件
- mybatis学习三 多级结果映射
- STM32实现循环移位
- Android adb 常用命令学习
- centos7中输入ifconfig出现ens33,没有eth0
- 2017/11/24(数据结构)
- 我的CSS入门指南
- 结果集映射使用注解(三)
- UST-10LX使用hector_slam构建地图
- DBCP连接池
- Gerrit代码审核服务器搭建全过程
- html5 的手机触摸事件
- 自定义View添加点击事件
- C++ IO流一些细节
- Shell编程基础
- [软件开发] 基于Qt开发的一款免费取色器软件