当前位置:编程学习 > JAVA >>

Java 数据库错误java.sql.SQLException: Io 异常:

java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186647040)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))Exception in thread "main" java.lang.NullPointerException
at com.bu3g.book.util.DBUtil.query(DBUtil.java:77)
at com.bu3g.book.util.DBUtil.main(DBUtil.java:151)
怎么解决?? --------------------编程问答-------------------- DBUtil.java 这个类 贴出来看看。
2个异常信息:
1、DBUtil.java里的第77行 抛了一个空指针异常。
2、java.sql.SQLException: Io 异常: Connection refused,数据库连接不上,工程中有数据库的连接驱动JAR包吗 --------------------编程问答-------------------- 数据库连接错误。
如果数据库端没有问题,检查应用程序的数据库参数配置和检查各种数据库驱动的JAR是否已经导入。 --------------------编程问答--------------------
DBUtil.java 
package com.bu3g.book.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBUtil {
private Connection con = null;                      //这就是一个连接的对象

public DBUtil() {
}

public DBUtil(Connection con) {
this.con=con;                                   //产地一个连接的对象进行连接
}

/**
 * 获得一个数据库连接
 * 
 * @return 数据库连接
 */
public Connection getConnection() {                       // 获取一个对象多的函数。。
try {
if (con==null || con.isClosed()==true) {          // 连接关闭或者是连接,,,类
Class.forName("oracle.jdbc.OracleDriver");           // oracle.jdbc.OracleDriver
//try{
this.con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora9i","scott","tiger");
//这是、数据定位符。。user。。。password。。("jdbc:oracle:thin:@localhost:1521:ora9i","scott","tiger");

//}catch(Exception e){System.out.print("1、"+e);}
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return this.con;
}

/**
 * 执行增,删,改,的SQL语句
 * @param sql 要执行的语句
 * @return 成功执行后影响的记录行数
 */
public int excuteUpdate(String sql){
Connection con=this.getConnection();
Statement st=null;
int rs=-1;//保存影响记录数
try {
st=con.createStatement();
rs=st.executeUpdate(sql);
System.out.println(sql);
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}finally{
this.closeStatement(st);
this.closeConnection();
}
return rs;
}

/**
 * 执行查询
 * @param sql
 * @return 包含多行的结果集对象
 */
public ResultSet query(String sql){
Connection con=this.getConnection();
Statement st=null;
ResultSet rs=null;
try {
st=con.createStatement();
//System.out.print(st);
rs=st.executeQuery(sql);
System.out.println(sql);
} catch (SQLException e) {
// TODO 自动生成 catch 块
//e.printStackTrace();
System.out.print("2"+e);

return rs;
}

public void closeConnection(){
try {
if (this.con!=null && this.con.isClosed()!=true) {
this.con.close();
this.con=null;
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void closeStatement(Statement st){
if (st!=null) {
try {
st.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
public void closeResultSet(ResultSet rs){
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
public void closeAll(Connection con,Statement st,ResultSet rs){
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
if (st!=null) {
try {
st.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
try {
if (con!=null && con.isClosed()!=true) {
con.close();
con=null;
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public static void main(String[] args) {
DBUtil obj=new DBUtil();
// int rs=obj.excuteUpdate("insert into adminInfo  (aid,  aname,  amail,  alogin, apass, atishi) values(seq_admininfo.nextval,'张三2','123456@qq.com','admin666','123123','123')");
// obj.closeConnection();
// System.out.println(rs);

ResultSet rs=obj.query("select * from adminInfo");

try {
while (rs.next()) {
System.out.print(rs.getString("aname")+"  ");
System.out.println(rs.getString("alogin"));
}
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}finally{
obj.closeResultSet(rs);
obj.closeConnection();
}
}
}
--------------------编程问答-------------------- 加载了 oracle_JDBC.jar
不编译运行看不到问题。。不报错。。一旦编译运行就会 报上面的错误。。 --------------------编程问答-------------------- 从异常上看是这句话报错st=con.createStatement(); connection创建失败。
报错code是ora-12505, 连接listener失败, 你用sql plus试下。
关于这个错误代码的详细信息,你可以上网搜下。 --------------------编程问答-------------------- 你创建了ora9i这个数据库? --------------------编程问答-------------------- @soulx 我知道了 。。。但是我不知道怎么结局、、
1、数据库的IP地址是否正确?
2、数据库的SID是否正确?
3、数据库的用户名/密码是否正确?

补充,可以通过以下语句察看当前数据库的SID:
select INSTANCE_NAME from v$instance;  --查看当前数据的库sid
但是这个IP 着呢么找的呢? SID那里去找??
再就是"scott","tiger"这个是用user=“xe”,password=“12321”吗?? --------------------编程问答-------------------- tnsnames.ora --------------------编程问答-------------------- 什么意思?我确定我的数据库是好的,我觉得就是Java与数据库连接的时候出错了。。。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,