求救:jdbc连接oracle出现空指针异常

cat_Honey 2008-06-15 12:16:32
jdbc连接oracle时提示出现空指针异常,为什么呢》?多谢
连的是本地机器


详细:
package day614;
import java.sql.*;

import day614.JdbcUtil;
public class TestConnection {

public static void main(String[] args) throws SQLException {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
JdbcUtil.getConnection();
stmt=con.createStatement();
String sql="create table test(name varchar2,mark char)";
stmt.executeUpdate(sql);
JdbcUtil.release(rs, stmt, con);

}

}

package day614;
import java.sql.*;
public class JdbcUtil {
static{
String d="oracle.jdbc.driver.OracleDriver";
try {
Class.forName(d);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
String url="jdbc:oracle:thin:@127.0.0.1:1521:snowbaby";
String username="system";
String password="system";
Connection con=null;
try{
con=DriverManager.getConnection(url,username,password);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public static void release(ResultSet rs,Statement stmt,Connection con){
if(rs!=null){
try{
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(stmt!=null){
try{
stmt.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(con!=null){
try{
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
public static void release(Object o){
try{
if(o instanceof ResultSet){
((ResultSet)o).close();
}else if(o instanceof Statement){
((Statement)o).close();
}else if(o instanceof Connection){
((Connection)o).close();
}
}catch(Exception e){
e.printStackTrace();
}
}

}

错误信息:
Exception in thread "main" java.lang.NullPointerException
at day614.TestConnection.main(TestConnection.java:12)



...全文
196 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cat_Honey 2008-06-15
  • 打赏
  • 举报
回复
嗯,是connection为null,可是原因在哪儿?
String url="jdbc:oracle:thin:@127.0.0.1:1521:snowbaby";
觉得是这儿出的错,却不知怎么测试出

用sqlplus登陆的 username和password确是system的...
迷糊了
fengyonglei 2008-06-15
  • 打赏
  • 举报
回复
con 为空 应该为 con=JdbcUtil.getConnection();
zhj92lxs 2008-06-15
  • 打赏
  • 举报
回复
好像是说你connection为空,自己打印出来看看
kahoho 2008-06-15
  • 打赏
  • 举报
回复
package day614;
import java.sql.*;

import day614.JdbcUtil;
public class TestConnection {

public static void main(String[] args) throws SQLException {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
con = JdbcUtil.getConnection();
stmt=con.createStatement();
String sql="create table test(name varchar2,mark char)";
stmt.executeUpdate(sql);
JdbcUtil.release(rs, stmt, con);

}

}

应该是你没有接到连接。
fuyou001 2008-06-15
  • 打赏
  • 举报
回复
你可打印出一些关键变量,看哪里是null
zuoguodang 2008-06-15
  • 打赏
  • 举报
回复
肯定是获得不到连接了,好好查一下
cat_Honey 2008-06-15
  • 打赏
  • 举报
回复
找到原因 ,多谢各位
cat_Honey 2008-06-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fengyonglei 的回复:]
con 为空 应该为 con=JdbcUtil.getConnection();
[/Quote]

汗水..果然 ,只顾着找JavaUtil的原因,接下来又有个sql的异常
Exception in thread "main" java.sql.SQLException: ORA-00906: missing left parenthesis
................

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧