jdbc多表查询

多表的原因

在数据库表设计中往往是要考虑表与表之间的关联,有一对一,一对多,多对多
例如一个商品拥有多种颜色,拥有多个尺寸。若将这些信息都用一张表来实现不利于维护,冗余大。
外键可以将两个表进行连接,但不建议使用太多,能不使用就不要使用,外键关联的主表不能进行删除 。
在数据库中多表查询比较简单例如:select A.name,B.name,C.name from A,B,C where A.aid=B.aid and A.cid=C.cid
那么在JavaWeb如何实现多表查询

JavaWeb实现多表查询

1.首先一个表对应一个类,类中的属性对应数据库的字段并将属性私有化,通过get属性名(数据类型 属性名)和set属性名()(注:属性名首字母大写)若是表中存在其他表的字段则需要加入其他表的类名(声明对象)(例如:product_polor 表中有product的编号pid和color表的cid ,那么在Product_Color类中需要定义private Product product;和private Color color 并创建get和set方法)
2. jdbc实现多表的查询
如下:

PreparedStatement ps = conn.prepareStatement("select pid, sname,tname,price,count,cname,pstid from pruduct_size_type,size,type,color where pid=? and pruduct_size_type.sid=size.sid  and pruduct_size_type.tid=type.tid and pruduct_size_type.cid=color.cid and isdel=0");
			ps.setInt(1, pid);
			 ResultSet rs = ps.executeQuery();
			 while(rs.next()){
				 Product_Size_Type pst=new Product_Size_Type();
				 Size s=new Size();
				 Type t=new Type();
				 Color c=new Color();
				 s.setSname(rs.getString("sname"));
				 t.setTname(rs.getString("tname"));
				 c.setCname(rs.getString("cname"));
				 pst.setPrice(rs.getDouble("price"));
				 pst.setCount(rs.getInt("count"));
				 pst.setPstid(rs.getInt("pstid"));
				 System.out.println(pst.getPstid());
				 pst.setSize(s);
				 pst.setType(t);
				 pst.setColor(c);
				 pstList.add(pst);
			 }	`

实现原理:在结果遍历时创建其他类的对象,通过 对象的set方法去获得select中对应的数据并将对象放入类的获得对象的方法中,这样便可将其他表的字段的数据获得到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值