A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何创 中级黑马   /  2012-12-16 23:34  /  1651 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

主函数:
package test;

import javabean.Type;
import db_connoper.DB_Type;

public class Test_DBType {
        public static void main(String[] args) {
                DB_Type db_type = new DB_Type();
               
                Type type = db_type.getType(2);
               
                System.out.println(type.getTypename());
               
        }

}

从方法:
package db_connoper;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javabean.Type;

public class DB_Type {
        Connection conn = null;
        PreparedStatement ptmt = null;
        ResultSet rs = null;
        Type type = null;
        public Type getType(int id){
                try {
                        conn = DB_Conn.getConnection();//链接数据库的方法,没问题的
                        String sql = "select typeid,typename,typedesc from type where typeid =?";
                        ptmt = conn.prepareStatement(sql);
                        ptmt.setInt(1, id);
                        rs = ptmt.executeQuery();
                        if(rs.next()){     //该行总是报空指针的错误
                                type.setTypeid(id);
                                type.setTypename(rs.getString("typename"));
                                type.setTypedesc(rs.getString("typedesc"));
                        }
                } catch (SQLException e) {
                        e.printStackTrace();
                }finally{
                        DB_Conn.free(rs, ptmt, conn);//关闭数据库资源
                }
                return type;
        }
}
数据库type表中有字段:typeid,typename,typedesc
已存在javabean:Type,提供的是以上三个字段的setter与getter方法
错误:空指针的错误。

1.jpg (15.89 KB, 下载次数: 27)

1.jpg

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

4 个回复

正序浏览
谭威 发表于 2012-12-17 08:41
Type type=new Type()

好的 我试试 谢谢
回复 使用道具 举报
像这种数据库问题,给你讲一个经验,先用你的sql语句:select typeid,typename,typedesc from type where typeid =id 在Mysql或Oracle命令行中实现测试一下,这样就大概知道是哪个环节出了问题,减少了代码的错误判断的时间
回复 使用道具 举报
Type type=new Type()

QQ截图20121217083815.png (28.24 KB, 下载次数: 21)

QQ截图20121217083815.png

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
rs = ptmt.executeQuery();
//麻烦楼主在这里加个输出,看看rs是不是null
System.out.println(rs);

if(rs.next()){     //该行总是报空指针的错误

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马