使用eclipse java和oracle数据连接!报错!

importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;impor... import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCExample {
public static void main(String[] args) {

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@localhost:1521:oracle";
String sql="select * from students";
try {
Connection con=DriverManager.getConnection(url, "sys", "system");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(sql);
while(rs.next())
{
System.out.println(""+rs.getString(1));
System.out.println(""+rs.getInt(2));
}
rs.close();
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
报错在下面
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:oracle

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:460)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:465)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at JDBCExample.main(JDBCExample.java:20)
我是oracle11 配置里面的 加入驱动product\11.1.0\db_1\jdbc\lib
但lib里面只有4个文件ojdbc5.jar ojdbc6.jar ojdbc5.jar ojdbc5_g.jar ojdbc6_g.jar
我试了 加载ojdbc5.jar和ojdbc6.jar
展开
 我来答
tianyu19800728
2011-11-24 · TA获得超过120个赞
知道答主
回答量:102
采纳率:0%
帮助的人:65.5万
展开全部
第一种可能
是配置得数据库sid名不正确localhost:1521:oracle 即红字部分不是你本机得sid,那么如何查看本机得sid呢?用如下命令 SELECT NAME FROM v$database;在sqlplus中执行就可以看到,把红字部分换成查询出来的sid就可以。
第二种可能
发现sid配置没有错误,但是还是报错,那可能就是oracle得监听配置出了问题,需要检查listener.ora文件,用记事本打开,
正确配置如下:
# listener.ora Network Configuration File: e:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = e:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = oracle)
(ORACLE_HOME = e:\oracle\product\10.2.0\db_1)
(SID_NAME = oracle)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
红字部分改成oracle创建时候的sid 保存退出
更多追问追答
追问
上面没有错 但检查listener.ora文件具体位置在那里 我查找好多这样的文件
追答
File: e:\oracle\product\10.2.0\db_1\network\admin\listener.ora 
类似这样的文件路径,看看你的oracle安装目录
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞扬sl
2011-11-23 · 超过15用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:57.9万
展开全部
连接oracle需要用户名和密码的把?
String user ="";
String password ="";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-11-23
展开全部
这是什么语言?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pql1911
2011-11-23 · 超过15用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:37.3万
展开全部
LZ有没有引入class12这个jar包?这是oracle驱动包.....
追问
我在myeclipse
选择properties。
2.选择java Build path中的libraries
3.选择add external jars......添加你的jar文件
是选择了这样ojdbc6.jar
追答
class12这个包好像只能纯手动引入...这个包在oracle安装目录里面的jdbc/lib/目录下...名字就叫class12.jar....你确定引入了这个包?我用的是10G版本...不知道一不一样。还有你两个try最好别分开写...没准你定义的url和sql只在第一个try中有效...在第二个try中就没有这些变量导致为空了(这个很重要..我就遇到过很多次)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式