在productDaoImpl 实现查询分类信息,我的实现办法如下:

在productDaoImpl 实现查询分类信息,我的实现办法如下:

	public List<Product> findAll() {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs=null;
		List<Product> list=null;
		CategoryService cService=new CategoryServiceImpl();	
		try {
			conn=JDBCUtils.getConnection();
			String sql="select * from product";
			pstmt=conn.prepareStatement(sql);
			rs=pstmt.executeQuery();
			list=new ArrayList<Product>();
			while(rs.next()) {
				Product product=new Product();
				product.setPid(rs.getInt("pid"));
				product.setPname(rs.getString("pname"));
				product.setAuthor(rs.getString("author"));
				product.setDescription(rs.getString("description"));
				product.setPrice(rs.getDouble("price"));
				product.setFilename(rs.getString("filename"));
				product.setPath(rs.getString("path"));
				product.setCategory(cService.findOne(rs.getInt("cid")));
				list.add(product);
			}
			return list;
		}catch (Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(rs, pstmt, conn);
		}
		return null;
	}

请问老师,这样查询方法和您讲的那个联合查询,有什么优缺点?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
吃吃吃鱼的猫 2019-07-24 14:13:31

同学你好,抱歉之前没有看到同学的查询语句。建议同学下次标识问题中的代码,方便老师更迅速的帮助同学解答。

关于同学的问题,解答如下:

联合查询查询的内容可以理解为:查询该分类下的商品信息。

同学这里查询的是所有的商品信息,再为所有的商品信息的分类字段设置相应的值。

这种情况下,可能会存在:

cid分类id可能在数据库中不存在。这时也能查出来商品信息,只是分类的字段为空。

所以,不建议使用此种方式。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 天天4244770 #1
    好的,谢谢,我明白了!
    2019-07-24 14:20:35
吃吃吃鱼的猫 2019-07-24 10:03:34

同学你好,如图所示:

http://img1.sycdn.imooc.com//climg/5d37bc1e00013ada05510424.jpg

同学所贴出的代码是findAll哦~

建议同学贴出所说的findById方法,方便老师为同学解答问题~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 天天4244770 #1
    我是说之前在category 里面写过findOne 这个方法,然后这次可以直接在这里调用这个方法 根据分类的ID 查询到category 这个实体,就不用联合查询了,我说了半天你都没听懂啊
    2019-07-24 10:15:21
好帮手慕阿满 2019-07-23 19:33:52

同学说的之前的查询方法是指那个查询方法呢?这里在方法是findAll时,可以显示分类信息吗?如:

http://img1.sycdn.imooc.com//climg/5d36f076000139a413320558.jpg

祝:学习愉快~

  • 提问者 天天4244770 #1
    findOne,根据id查询分类,看我代码啊
    2019-07-23 19:36:50
好帮手慕阿满 2019-07-23 17:54:06

同学你好,使用select * from product可以查询中所有的商品信息,但是该商品的分类信息不会显示。所以这里建议使用联合查询,查询商品的同时,将商品的分类信息也查询出来。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 天天4244770 #1
    我这里利用之前的查询方法,通过获取id一样可以查询到分类的所有信息啊
    2019-07-23 18:46:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师