2 shelley chason shelley_chason 于 2017.08.30 01:05 提问

jsp+JavaBean使用list读取数据库信息读取为空 5C

Javabean片段:

public List queryAllStu() {
        List stus = new ArrayList();
        try {
            pstmt = conn.prepareStatement("select * from studentinfo");
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                stuInfo stu = new stuInfo();
                stu.setId(rs.getInt(1));
                stu.setNicheng(rs.getString(2));
                stu.setTruename(rs.getString(3));
                stu.setXb(rs.getByte(4));
                if (rs.getDate(5) != null) {
                    stu.setCsrq(rs.getDate(5).toString());
                }
                stu.setZy(rs.getString(6));
                if (rs.getString(7) != null) {
                    stu.setKc(rs.getString(7).split("&"));
                }
                if (rs.getString(8) != null) {
                    stu.setXq(rs.getString(8).split("&"));
                }
                stu.setBz(rs.getString(9));
                stus.add(stu);
            }
            return stus;
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }

stuinfo:

 private int id;
    private String nicheng;
    private String truename;
    private byte xb;
    private String csrq;
    private String zy;
    private String[] kc = { "" };
    private String kcs = "";
    private String[] xq = { "" };
    private String xqs = "";
    private String bz;

jsp页面:

 <body>
    <jsp:useBean id="stuInfoService" class="com.nefu.service.stuInfoService"></jsp:useBean>
    <%
    List stus=stuInfoService.queryAllStu();
    if(stus==null)
    out.print("null");
    else
    out.print(stus.size());
    %>
  </body>

数据库有数据但每次都返回null不知道为什么。

5个回答

qq_26555463
qq_26555463   2017.08.30 09:29

看一下你的ResultSet 有没有获取到数据,返回空有可能sql查询出异常或者while里面遍历出异常了,看一下你的控制台有没有报错,

qq_26555463
qq_26555463 回复shelley_chason: 你可以在while上面输出一下rs的长度,System.out.print(rs.getColumnCount());看一下有没有数据
3 个月之前 回复
qq_26555463
qq_26555463 回复shelley_chason: 类型错误了把,是不是实体跟数据库表的类型有不匹配的,没办法转换赋值?你可以看看具体是哪一行报错,应该是while里面的赋值出异常了
3 个月之前 回复
shelley_chason
shelley_chason 萌新不会debug
3 个月之前 回复
shelley_chason
shelley_chason Unknown type '16 in column 3 of 9 in binary-encoded result set.控制台报错
3 个月之前 回复
XianRenShan
XianRenShan   2017.08.30 10:00

pstmt = conn.prepareStatement("select * from studentinfo");
ResultSet rs = pstmt.executeQuery();
现在在这里查看,rs中是否有数据。

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.08.30 11:30

估计是抛出异常了,,,,
题主在后台用main测试一下这个方法能不能正常运行“ queryAllStu()”

shelley_chason
shelley_chason   2017.08.30 15:03

jdbc的jar包出问题了,无法识别byte类型变量。

qq_24249533
qq_24249533   2017.08.30 15:23

应该是在获取数据库数据后set到对象中的时候报错了,进入catch返回null

Csdn user default icon
上传中...
上传图片
插入图片