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

来源:互联网 发布:python snakebite 编辑:程序博客网 时间:2024/06/06 09:46

学习使用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.NullPointerExceptionjava.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数据库,可能转换后 有杂物存在程序的缓冲区中,需要重新清理之后才能运行!

0 0
原创粉丝点击