我检查了所有内容,如用户名,密码,db_url,表名等,但我仍然得到此输出---连接到数据库 创建声明 显示java.lang.NullPointerException
这是我的代码,(我正在使用eclipse Kepler EE和MySQL 5.6.17.0)
import java.sql.*;
public class Demo {
static final String JDBC_DRIVER="com.mysql.jdbc.Driver";
static final String DB_URL="jdbc:mysql://localhost/sample";
static final String USER="root" ;
static final String PASS="root";
public static void main(String[] args)
{
Connection conn=null;
Statement stmt=null;
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("connecting to database");
conn=DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("creating statement");
String sql="select * from sample";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
int eid=rs.getInt("id");
String ename=rs.getString("name");
System.out.print(eid+"\t");
System.out.print(ename);
System.out.println("");
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e)
{
System.out.println(e);
}
finally
{
try
{
if(stmt!=null)
{
stmt.close();
}
}catch(Exception e)
{
System.out.println(e);
}
try
{
if(conn!=null)
{
conn.close();
}
}catch(Exception e)
{
System.out.println(e);
}
}
}
}
答案 0 :(得分:0)
您没有创建stmt
对象
stmt = conn.createStatement( );
您必须在此行ResultSet rs=stmt.executeQuery(sql);
您正在null
对象上执行查询。
因此获得NPE
答案 1 :(得分:0)
我认为你的陈述没有确定。它始终为空。
我认为你应该使用它:
stmt = conn.createStatement( );
答案 2 :(得分:0)
您设置Statement stmt=null;
并且以后永远不会对其进行初始化。