当前位置: 代码迷 >> Eclipse >> conn.createStatement报java.lang.nullpointerexception异常
  详细解决方案

conn.createStatement报java.lang.nullpointerexception异常

热度:101   发布时间:2016-04-23 00:33:32.0
conn.createStatement报java.lang.nullpointerexception错误
连接服务器的Oracle 11g,想把数据库中的一个表中的几条记录查找出来,代码如下,但是出现了java.lang.nullpointerexception错误,菜鸟不知道怎么解决。代码如下:

package com.until;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class testCon {
private static String URL = "jdbc:oracle:thin:@172.16.14.143:1521:windp";
private static String USERNAME = "windpower01";
private static String PASSWORD = "windpower01";
private static Connection conn;
public static Connection getCon() throws SQLException{
Connection conn = null;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}

/**
 * @param stmt 
 * @param args
 */
public static void main(String[] args) {
    ResultSet rs=null;
    Statement stmt=null;
    String ono=null;
    String ona=null;
    String pas=null;
     try{
      stmt=conn.createStatement();
      rs=stmt.executeQuery("SELECT OPERNO,OPERNAME,PASSWORD FROM OPERATOR");
      while(rs.next())
      {
      ono=rs.getString(1);
      ona=rs.getString(2);
      pas=rs.getString(3);
      System.out.println("OPERNO:"+ono+",OPERNAME:"+ona+",PASSWORD:"+pas);
      }
     }
     catch (Exception e) {
e.printStackTrace();
}
}
public static void close(Connection con,Statement sm,ResultSet rs){
try {
if(con!=null){
con.close();
}
if(sm!=null){
sm.close();
}
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
报错显示是 stmt=conn.createStatement();这里
------解决方案--------------------
stmt=conn.createStatement();
这句前面加上conn=testCon.getCon()
------解决方案--------------------
引用:
你回复之前我也想到了这点,可能是因为conn是空的原因,明天去试试看怎么样,谢谢。

呵呵,好用的话别忘了结贴咯。
------解决方案--------------------
public static Connection getCon() throws SQLException{  是静态方法
main 也是静态方法,可以直接调用 
stmt= getCon().createStatement();

------解决方案--------------------
testCon 调用这个获得Connection,然后再获得Statement,不过人们更喜欢用PreparedStatement
  相关解决方案