struts2之关联查询(5)

需要关联四个表
select g.*,b.name brname,s.bid,s.sname,bi.name biname from T_GOODS g
left join T_brand b on b.id = g.brandid
inner join T_smallclass s on g.sid = s.sid
inner join T_bigclass bi on bi.id = s.bid"
T_GOODS 商品表格

商品实体类
public class Goods {
public int id;
public String goodsname;
public double weight;
public double price;
public String color;
public int brandid;
public Date shangtime;
public int stock;
public int sid;
public BigClass bigclass; //其实是大分类与小分类的实体类,写一个了,不允许这样,因为主键不清
public Brand brand;//其实是把品牌实体类写在商品实体类,后台需要
}
T_brand 品牌表格

品牌实体类
public class Brand {
private int id;
private String name;
}
T_smallclass 小分类表格

public class SmallClass {
private int id;
private String name;
public int bid;
}
T_bigclass 大分类表格

public class BigClass {
//大分类
private int id;
private String name;
}
//商品关联查询
public List<Goods> goodslist();
//商品关联查询
connection = DBUtil.getConnection();
String sql = "select g.*,b.name brname,s.bid,s.sname,bi.name biname "
+ " from T_GOODS g left join T_brand b on b.id = g.brandid"
+ " inner join T_smallclass s on g.sid = s.sid"
+ " inner join T_bigclass bi on bi.id = s.bid";
p = connection.prepareStatement(sql);
set = p.executeQuery();
List<Goods> list = new ArrayList<Goods>();
while(set.next()){
Goods goods = new Goods();
goods.setId(set.getInt("id"));
goods.setGoodsname(set.getString("goodsname"));
// goods.setBrandid(set.getInt("brandid"));
goods.setColor(set.getString("color"));
goods.setPrice(set.getDouble("price"));
goods.setShangtime(set.getDate("shangtime"));
// goods.setSid(set.getInt("sid"));
goods.setStock(set.getInt("stock"));
goods.setWeight(set.getDouble("weight"));
goods.setBrand(new Brand());
goods.getBrand().setId(set.getInt("brandid"));
goods.getBrand().setName(set.getString("brname"));
goods.setBigclass(new BigClass());
goods.getBigclass().setBid(set.getInt("bid"));
goods.getBigclass().setName(set.getString("biname"));
goods.getBigclass().setSid(set.getInt("sid"));
goods.getBigclass().setSname(set.getString("sname"));
//注意,这里的值不可以重复(写错了,把大分类和小分类写在一起了,应该分开)
list.add(goods);
}
return list;
其余都是一样
前台赋值问题

关于前台赋值,如果跨实体的话,先写进的实体,然后写远的,比如,goodslist.brand.name{brand是goods实体类里面的 Brand 品牌 . 品牌实体类的name值}(自己理解)
struts2之关联查询(5)的更多相关文章
- JDBC MySQL 多表关联查询查询
public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...
- MYSQL基础操作之数据约束与关联查询
一.MYSQL约束 1.默认值约束,当字段没有插入值的时候,mysql自动给该字段分配默认值. 默认值的字段允许为空. 对默认值字段也可以插入null. CREATE TABLE STUDENT( I ...
- C#代码中实现两个表(DataTable)的关联查询(JOIN)
之前通常都是使用SQL直接从数据库中取出表1和表2关联查询后的数据,只需要用一个JOIN就可以了,非常方便.近日遇到一种情况,两个表中的数据已经取到代码中,需要在代码中将这两个表关联起来,并得到它们横 ...
- Mybatis关联查询和数据库不一致问题分析与解决
Mybatis关联查询和数据库不一致问题分析与解决 本文的前提是,确定sql语句没有问题,确定在数据库中使用sql和项目中结果不一致. 在使用SpringMVC+Mybatis做多表关联时候,发现也不 ...
- Mysql多表表关联查询 inner Join left join right join
Mysql多表表关联查询 inner Join left join right join
- YII2-数据库数据查询方法,关联查询with, joinWith区别和分页
一.ActiveRecord 活动记录 1.with关联查询 例如,查询评论 $post = Post::find()->with('comments'); 等价于以下结果集 SELECT * ...
- Mybatis高级查询之关联查询
learn from:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps 关联查询 准备 关联结果查询(一对一) resul ...
- Spring+MyBatis框架中sql语句的书写,数据集的传递以及多表关联查询
在很多Java EE项目中,Spring+MyBatis框架经常被用到,项目搭建在这里不再赘述,现在要将的是如何在项目中书写,增删改查的语句,如何操作数据库,以及后台如何获取数据,如何进行关联查询,以 ...
- [NHibernate]一对多关系(关联查询)
目录 写在前面 文档与系列文章 一对多查询 总结 写在前面 上篇文章介绍了nhibernate的一对多关系如何配置,以及级联删除,级联添加数据的内容.这篇文章我们将学习nhibernate中的一对多关 ...
随机推荐
- 【转】mysql分库分表,数据库分库分表思路
原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路 一. 数据切分 关系型数 ...
- [百度贴吧]飞腾1500a .VS. 龙芯3a3000: 同频实用性能对比
贴吧关于 龙芯与飞腾的简单对比. https://tieba.baidu.com/p/5682824804?red_tag=0221728732 龙芯3a3000实用性能 ,还不如4年前发布的FT15 ...
- 正式发布! .NET开发控件集ComponentOne 新版本加入Blazor UI
近期,由葡萄城推出的ComponentOne .NET开发控件集正式发布最新版本! ComponentOne 是一套专注于企业 .NET开发.支持 .NET Core 平台,并完美集成于 Visual ...
- LeetCode 第 167 场周赛
1290.二进制链表转整数 1291.顺次数 1292.元素和小于等于阈值的正方形的最大边长 1293.网格中的最短路径 1290.二进制链表转整数 1290.二进制链表转整数 给你一个单链表的引用结 ...
- Kubernetes---Service(SVC)服务
⒈介绍 kubernetes 通过标签选择的方式来匹配一组pod,然后提供对外访问的一种机制 一组pod可以对应到多个svc的 每一个service(svc)都可以理解为一个微服务 Service有且 ...
- Java静态代理与动态代理实现
一.什么是代理 代理是一种设计模式,它提供了一种通过代理访问目标对象的方式.在应用代理之前,我们调用对象的过程如下: 客户端直接调用对象并获取返回值.而应用了代理之后,我们调用对象的过程变成如下: 客 ...
- C++ STL Vector学习 (待续)
头文件:<vector> 初始化 vector<Elementtype> vec(); /*Elementtype是数据类型,10代表长单为10*/ vector<Ele ...
- 宝塔面板liunx开启ssl域名后无法访问解决方法
不打开宝塔面板的ssl会不安全,打开了就会提示ssl证书不能使用的错误 如下所示: 您的连接不是私密连接 攻击者可能会试图从 你的ip 窃取您的信息(例如:密码.通讯内容或信用卡信息).了解详情 NE ...
- 怎样解决忘加new关键字所造成的问题
通过构造函数 "new" 一个对象出来时, 如果忘记写这个 new, 那这个构造函数就不会返回一个实例对象, 而是会像普通函数一样执行. 下面是两种规避忘记写new时所引发的问题的 ...
- poj 3468 整理一下线段树的写法
// 对于延迟更新,我们在updata 和query的时候 pushdown和pushup两个东西都要存在 #include <iostream> #include <cstdio& ...