问题描述
publicclassdbimplementsSerializable{staticConnectionconn=null;Statementstmt=null;ResultSetrs=null;//db的构造函数publicdb(){}publicstaticConnectiongetConnection(){try{//注册数据库驱动程序为Oracle驱动Class.forName("oracle.jdbc.driver.OracleDriver");/*建立数据库连接,使用Oracle的一种thin连接方式,@demo指主机名字,demodb为数据库,后面的两个demo为用户名和密码*/conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");}catch(java.lang.ClassNotFoundExceptione){//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了System.err.println("db()1:"+e.getMessage());}catch(java.sql.SQLExceptione){//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了System.err.println("db()2:"+e.getMessage());}catch(Exceptione){System.out.println("db()3:"+e.getMessage());}returnconn;}代码如上。进行连接之后,出现ora-12505问题。检查listener.ora文件没有问题,sid也是对的。在sqlplus下可以连接,且不使用javabean而在jsp中直接连接数据库成功。求解?
解决方案
解决方案二:
另外,返回的错误中式db()2:listenerrefusedtheconnectionwithzhefollowingerror:pra-12505
解决方案三:
该回复于2010-05-12 09:31:02被版主删除
解决方案四:
刚才仔细看了下你的代码,代码应该是没有什么问题的!应该是数据库的问题,你看看这个OracleOraDb10g_home1TNSListener服务启动了没有,如果启动了,那么有可能你里面的配置文件被改动了!
解决方案五:
的确是启动了,是那里的配置文件被改动了呢?oracle吗?
解决方案六:
另外,我是11g,启动的服务名为OracleOraDb11g_home1TNSListener,不知道是不是和oracle的版本有关系
解决方案七:
packageutil;importjava.sql.*;publicclassDBHelper{privateConnectioncon;privatefinalstaticStringurl="jdbc:oracle:thin:@oracle.yustita.net:1521:TEST";privatefinalstaticStringid="team05";privatefinalstaticStringpw="team05";static{//1.오라클JDBC드라이버를로딩한다.try{Class.forName("oracle.jdbc.driver.OracleDriver");}catch(ClassNotFoundExceptione){System.out.println("오라클JDBC드라이버로딩에실패");}}publicConnectiongetConnection(){try{con=DriverManager.getConnection(url,id,pw);}catch(SQLExceptione){System.out.println("오라클DB에연결할수없습니다.");System.out.println(e.getMessage());}returncon;}//연결(Connection)을닫아줌publicvoidclose(){try{if(con!=null)con.close();}catch(SQLExceptione){}}//Statement와연결(Connetion)을닫아줌publicvoidclose(Statementstmt){try{if(stmt!=null)stmt.close();}catch(SQLExceptione){}finally{close();}}publicvoidclose(Statementstmt,ResultSetrs){try{if(rs!=null)rs.close();}catch(SQLExceptione){}finally{close(stmt);}}}
解决方案八:
listener.ora发上来看看,你用的orcl可能是service_name,用这个文件中的SID的名字试试看。另外记得关调防火墙再试