Mybatis多对多转化为一对多查询,简单易学(SSM框架)
来源:互联网 发布:淘宝购物拒签 编辑:程序博客网 时间:2024/06/05 03:52
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
//命名空间为dao的路径
<mapper namespace="com.sp.dao.GoodsDao">
<id property="id" column="id" />
<!-- property="实体类属性" column="数据库字段名" -->
<association property="seller" column="sellerid" javaType="Seller" select="getseller">
<id property="id" column="id"/>
</association>
<collection property="gtype" column="id" ofType="Gtype" select="getgtype"><!-- column="id" 对应下面 goodsid=#{id}中的id 值为商品表的id-->
<id property="id" column="id"/>
</collection>
</resultMap>
<select id="getseller" resultType="Seller">
select * from seller where id=#{id}
</select>
//把多对多转化为一对多(增加一个中间表,详细见下图),根据子查询得到gtype表数据,对应上面select="getgtype"
select * from gtype where id in (select typeid from goodstype where goodsid =#{id} )
</select>
//返回类型须写成goodsmap,这样就会自动调用goodsmap中的查询,把查询到的gtype,seller自动放到实体类中
select * from goods
</select>
</mapper>
!------------------------------------------------------------------------------------------------------------------------------------------------------!
实体类Goods,其他两个没啥特别的就不给大家贴了,主要就是定义一个List<Gtype> gtype;
public class Goods {
Integer id;
String name;
String pic;
Seller seller;
double price;
double wprice;//折扣价
String remark;//备注
State state;
Timestamp addtime;
Integer sort;
List<Gtype> gtype;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getWprice() {
return wprice;
}
public void setWprice(double wprice) {
this.wprice = wprice;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Timestamp getAddtime() {
return addtime;
}
public void setAddtime(Timestamp addtime) {
this.addtime = addtime;
}
public Seller getSeller() {
return seller;
}
public void setSeller(Seller seller) {
this.seller = seller;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public List<Gtype> getGtype() {
return gtype;
}
public void setGtype(List<Gtype> gtype) {
this.gtype = gtype;
}
}
- Mybatis多对多转化为一对多查询,简单易学(SSM框架)
- 【SSM-MyBatis框架】关联查询--一对多查询
- SSM框架下实现MyBatis连接查询,一对多和多对一
- ssm框架学习---mybatis中一对多关系的查询
- 【SSM-MyBatis框架】关联查询--多对多查询
- mybatis 一对多/多对多 查询为空
- 22、SSM框架-Mybatis关联查询一对一和一对多的实现(4)
- 【MyBatis框架】高级映射-一对多查询
- 【MyBatis框架】高级映射-一对多查询
- mybatis一对多查询
- mybatis一对多查询
- Mybatis一对多查询
- Mybatis 一对多 查询
- mybatis 一对多查询
- Mybatis 一对多 查询
- Mybatis一对多查询
- Mybatis一对多查询
- Mybatis(一对多查询)
- 如何用AndroidStudio将代码上传至Maven仓库
- 第二周项目三-体验复杂度
- 有关Lucene的问题(8):用Lucene构建实时索引的文档更新问题
- 深度学习中的验证集和超参数简介
- 使用 CAS 在 Tomcat 中实现单点登录
- Mybatis多对多转化为一对多查询,简单易学(SSM框架)
- 匈牙利算法
- mysql性能优化-慢查询分析、优化索引和配置
- CrossApp 设置App启动页(无任何黑屏白屏,显示完启动画面之间到显示出首页界面)
- 腾讯笔试 机器学习
- win10笔记本出现“wlan没有有效的IP配置”
- Java类文件结构详解
- 最全的jquery datatables api 使用详解
- 【牛客 题库】 内联函数