这个是网页上面提示出来的:
java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=185599488)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
下面是我的代码 大家看看 代码不会错的:
我TOMCAT也开了 我也把Oracle JDBC驱动程序里的classes12.jar复制到Tomcat\common\lib 文件里了 看看我代码 : <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.sql.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href=" <%=basePath%>">
<title>My JSP 'oraclesjk.jsp' starting page </title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%!
String DBDRIVER="oracle.jdbc.driver.OracleDriver";
String DBURL="jdbc:oracle:thin:@localhost:1521:mldn";
String DBUSER="lu";
String DBPASSWORD="jie";
Connection conn=null;
Statement stmt=null;
%>
<%
try
{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
//创建表的SQL语句
String sql="CREATE TABLE mldntab(name varchar(20))";
stmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(Exception e)
{
out.println(e);
}
%>
</body>
</html>
java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=185599488)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
下面是我的代码 大家看看 代码不会错的:
我TOMCAT也开了 我也把Oracle JDBC驱动程序里的classes12.jar复制到Tomcat\common\lib 文件里了 看看我代码 : <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.sql.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href=" <%=basePath%>">
<title>My JSP 'oraclesjk.jsp' starting page </title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%!
String DBDRIVER="oracle.jdbc.driver.OracleDriver";
String DBURL="jdbc:oracle:thin:@localhost:1521:mldn";
String DBUSER="lu";
String DBPASSWORD="jie";
Connection conn=null;
Statement stmt=null;
%>
<%
try
{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
//创建表的SQL语句
String sql="CREATE TABLE mldntab(name varchar(20))";
stmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(Exception e)
{
out.println(e);
}
%>
</body>
</html>
先用sqlplus 看看能不能进入ORACLE数据库。如果可以的话。那么mldn是你的数据库名呢?还是你的sid_name的名字呢。进入数据库查一下sid_name的名字是什么?确定一下。
code=12505应该是sid的名字出问题。试下再说
1)连接出错。查看程序是否有问题?
2)更换驱动是否可以解决问题?
3) 查看oracle 出错日志?
4) 一般看一看listener.ora就可以了。
msn : [email protected]
再小心问一下,数据库服务和监听器都启动了吗?
视频里的Oralce版本好象是9开头的 我的版本是 11G
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DBCon {
private static String driver = "oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
private static String user = "scott";
private static String password = "tiger";
public static Connection getConnection(){
try {
Class.forName(driver);
Connection con=DriverManager.getConnection(url, user, password);
System.out.println("ok");
return con;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void close(Connection con,Statement stm,ResultSet rs){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stm!=null){
try {
stm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
DBCon.getConnection();
}
}
给你个连接oracle的代码 你copy去改下用户名和密码 看看
按照我说的实验下:
1.先把oracle服务打开
OracleServiceORCL
2.打开客户端的SQL Developer,自己new一个Connection,名称自己起叫test吧。然后输入用户名和密码,这里的用户名和密码是你默认安装时候的用户名和密码。
3.你new了一个连接以后,数据库里面本来就有很多实例。然后你在other users自己user,你随便起个名字,比如:closewubq。
4.在closewubq下,创建你所需的表,什么什么的。
以上4部这都是准备工作。5.开始连接数据库,jdbc的驱动程序从安装目录中查找,\oracle11g\product\11.1.0\db_1\jdbc\lib,里面有好几个包,如果你的JDK是1.6的就选择ojdbc6.jar就OK了。
6.代码:import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection{
static Connection conn;
static Statement stm;
static ResultSet rs;
static String driver="oracle.jdbc.driver.OracleDriver";
static String url="jdbc:oracle:thin:@127.0.0.1:1521:数据库名称";
public static void main(String[] args) {
try {
//一般都还是用Class.forName("");//不行的话就用下面的语句。
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn=DriverManager.getConnection(url, "xxx", "xxxx");
stm=conn.createStatement();
rs=stm.executeQuery("select * from tabelname");
while (rs.next()) {
System.out.println("o le");
}
conn.close();
} catch (SQLException e) { e.printStackTrace();
}
}
}
看看是否能用,上面中文部分和,xxx以及tablename换成你自己的。
输出了就连接成功了
提示说这几行错误的
是李兴华的 JDBC连接Oracle视频教程 才13分钟 我前前后后按照他的那种操作方法操作了N次了
但是每次都不行 我郁闷死了 到底哪里不对啊 难道是我的Oracle版本太新了?
还有一个,我记得我曾经在使用你这种方式连接数据库的时候是需要配置本地数据源的,后来一直使用tomcat连接池连接就没有再仔细研究这个了,你数据源配好了吧?