myBatis里表与表之间的关系 多对一时候
来源:互联网 发布:社区矫正软件下载 编辑:程序博客网 时间:2024/05/17 00:03
<帖子N> 对 <分类1>
1.所实现的映射关系是:在帖子分类的实体对象里包含的是帖子的实体对象的集合。
1)首先建立实体关系的映射,那么就需要在分类的实体里加入帖子的集合。代码如下:
package com.model;import java.util.List;
//分类
public class Sort {
private Integer sortId;//分类编号
private List<Theme> themes;
public List<Theme> getThemes() {
return themes;
}
public void setThemes(List<Theme> themes) {
this.themes = themes;
}
public Integer getSortId() {
return sortId;
}
public void setSortId(Integer sortId) {
this.sortId = sortId;
}
public String getSortName() {
return sortName;
}
public void setSortName(String sortName) {
this.sortName = sortName;
}
private String sortName;//分类名称
}
2)创建一个TypeInfoMapper的实现接口:
package com.dao.imp;import com.dao.IDaoBBS;
import com.model.Sort;
public interface SortMapper extends IDaoBBS<Sort>{
}
3)编写相应的sql配置文件:SortMapper.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.imp.SortMapper">
<select id="getModel" resultMap="SortResult" parameterType="java.lang.Integer">
select s.*,h.*,u.*
from Sort s inner join Theme h
on s.sortId=h.sortId
Left join userInfo u
on h.userId=u.userId
where s.sortId=#{id}
</select>
<resultMap type="com.model.Sort" id="SortResult">
<result column="sortId" property="sortId"></result>
<result column="sortName" property="sortName"></result>
<collection property="themes" ofType="com.model.Theme" resultMap="com.dao.imp.ThemeMapper.ThemeResult">
</collection>
</resultMap>
</mapper>
注意:collection表示的是集合的数据。property表示所对应的集合的属性名。
ofType表示集合里的数据的类型。resultMap表示的是调用的是其它的结果映射集。
由于该结果映射集不在同一个文件下,那么就需要引入其它文件下的结果集。
其它结果集的命名空间+结果集的名称。比如:
com.dao.imp.ThemeMapper.ThemeResult
测试:
public static void main(String[] args) {
// TODO Auto-generated method stub
String resource = "mybatis-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
SortMapper sortMapper=sqlSession.getMapper(SortMapper.class);
Sort s= sortMapper.getModel(1);
System.out.println("分类名称:"+s.getSortName());
List<Theme> list= s.getThemes();
for(Theme i:list){
System.out.println("帖子名称:"+i.getThemeName());
System.out.println("用户名:"+i.getThemeUserInfo().getUserName());
}
- myBatis里表与表之间的关系 多对一时候
- MyBatis 表与表之间的关系 1对多的情况
- MyBatis:多对一表关系详解
- mybatis对象之间映射关系以及数据库表建立的时候外键的添加
- myBatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- MyBatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- Hibernate中表与表之间关系的处理(多对多)
- MyBatis 一对多和多对一的关系
- MyBatis对象关系映射--- 多对一
- Mybatis映射关系-多对一映射
- MyBatis--关联关系查询--多对一--多表连接查询
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- C#在字符串中统计某个字符次数
- 【Android】如何设置应用强制横屏或竖屏
- 网络数据加密理论
- 中文分词的一些研究记录
- 调试中日志打印printf技巧
- myBatis里表与表之间的关系 多对一时候
- 手动画圈
- C#控制台 定义float形变量
- POJ1717 Dominoes (背包)
- MYSQL数据库中IP地址存储优化
- 金额与数字转化
- 手把手教你在linux桌面版环境下导入ONOS到Intellij
- 字符流和字节流的区别
- C++指针详解