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

玉龙然然 2013-08-29 09:51:06
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)
怎么解决??
...全文
4094 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
末日哥 2013-08-29
  • 打赏
  • 举报
回复
你创建了ora9i这个数据库?
soulx 2013-08-29
  • 打赏
  • 举报
回复
从异常上看是这句话报错st=con.createStatement(); connection创建失败。 报错code是ora-12505, 连接listener失败, 你用sql plus试下。 关于这个错误代码的详细信息,你可以上网搜下。
玉龙然然 2013-08-29
  • 打赏
  • 举报
回复
加载了 oracle_JDBC.jar 不编译运行看不到问题。。不报错。。一旦编译运行就会 报上面的错误。。
玉龙然然 2013-08-29
  • 打赏
  • 举报
回复
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();
		}
	}
}
soulx 2013-08-29
  • 打赏
  • 举报
回复
数据库连接错误。 如果数据库端没有问题,检查应用程序的数据库参数配置和检查各种数据库驱动的JAR是否已经导入。
GP0071 2013-08-29
  • 打赏
  • 举报
回复 1
DBUtil.java 这个类 贴出来看看。 2个异常信息: 1、DBUtil.java里的第77行 抛了一个空指针异常。 2、java.sql.SQLException: Io 异常: Connection refused,数据库连接不上,工程中有数据库的连接驱动JAR包吗
玉龙然然 2013-08-29
  • 打赏
  • 举报
回复
什么意思?我确定我的数据库是好的,我觉得就是Java与数据库连接的时候出错了。。。
soulx 2013-08-29
  • 打赏
  • 举报
回复
tnsnames.ora
玉龙然然 2013-08-29
  • 打赏
  • 举报
回复
@soulx 我知道了 。。。但是我不知道怎么结局、、 1、数据库的IP地址是否正确? 2、数据库的SID是否正确? 3、数据库的用户名/密码是否正确? 补充,可以通过以下语句察看当前数据库的SID: select INSTANCE_NAME from v$instance; --查看当前数据的库sid 但是这个IP 着呢么找的呢? SID那里去找?? 再就是"scott","tiger"这个是用user=“xe”,password=“12321”吗??

81,092

社区成员

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

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