JDBC连接oracle出现空指针异常记录

原文地址为: JDBC连接oracle出现空指针异常记录

学习使用oracle的时候 用标准JDBC操作进行数据库连接

public DBManager() {
try {
String className = "oracle.jdbc.driver.OracleDriver";
Class.forName(className);
System.out.println("加载数据库驱动成功!");
} catch (ClassNotFoundException e) {
System.out.println("加载数据库驱动失败!");
e.printStackTrace();
}

try {
System.out.println("开始连接数据库");
String user = "MYDATABASE";
System.out.println("user = " + user);
String password = "123123";
String url = "jdbc:oracle:thin:@:1521:XE";
con = DriverManager.getConnection(url, user, password);
System.out.println("con =" + con);
System.out.println("创建数据库连接成功!");

} catch (SQLException e) {
System.out.print(con);
System.out.println("创建数据库连接失败!");
con = null;
e.printStackTrace();
}
}

在类中直接使用public static void main(String[] arg0){

DBManager dbm = new DBManager();

}

能够读取数据库中的信息 但是在Web程序内 调用Servlet中的DBManager dbm = new DBManager();会在Tomcat中报错 空指针异常

 java.lang.NullPointerException
java.lang.String.<init>(String.java:166)
oracle.sql.CharacterSet.AL32UTF8ToString(CharacterSet.java:1516)
oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:588)
oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:541)
oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:815)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:361)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
java.sql.DriverManager.getConnection(DriverManager.java:664)
java.sql.DriverManager.getConnection(DriverManager.java:247)
util.DBManager.<init>(DBManager.java:33)
service.StudentService.stu_Login(StudentService.java:21)
MyServlet.LoginPageServlet.doPost(LoginPageServlet.java:35)
javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


最终解决办法 : 

cleanup程序   

猜测原因:

我的连接程序原来是连接的MySQL数据库,可能转换后 有杂物存在程序的缓冲区中,需要重新清理之后才能运行!


转载请注明本文地址: JDBC连接oracle出现空指针异常记录

猜你喜欢

转载自blog.csdn.net/xfxf996/article/details/80847390
今日推荐