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 结束
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
貌似你的代码编译都不通过, DataSource 变量都没初始化,第二是你的写法有问题,居然在 while 循环中去获得连接。最好把获得 Connection 放到 while 外面。
如果楼主能贴出报错信息,那就更直观了。
不过也能看出这段代码会抛出空指针异常
NullPointerException
DataSource dataSource;
这里只声明了dataSource,还没对其赋值。
而后面的代码直接调用了
dataSource.getConnection()
难免空指针。
空指针异常很明显,但最大的问题是while循环里面创建连接而且没释放!