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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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