帮忙看看这段代码错在哪了?

DataSource datasource;

BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

String bookname;

while(!("exit".equals(bookname = d.readline()))){

    Connection con = datasource.getConnection()

    Statement stmt = con.createStatement();

    ResultSet res = stmt.executeQuery("select * from testtable where bookname= '" + bookname + "'"); 

    if(res.next()){

        System.out.println("价格为:"+res.getDouble("price"));

    }//if 结束

}//while 结束


侃侃无极
浏览 479回答 3
3回答

慕盖茨4494581

貌似你的代码编译都不通过, DataSource 变量都没初始化,第二是你的写法有问题,居然在 while 循环中去获得连接。最好把获得 Connection 放到 while 外面。

慕妹3242003

如果楼主能贴出报错信息,那就更直观了。不过也能看出这段代码会抛出空指针异常NullPointerExceptionDataSource dataSource;这里只声明了dataSource,还没对其赋值。而后面的代码直接调用了dataSource.getConnection()难免空指针。

呼如林

空指针异常很明显,但最大的问题是while循环里面创建连接而且没释放!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java