package dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class BaseDao {
public final static String driver = "oracle.jdbc.driver.OracleDriver";
public final static String url = "jdbc:oracle:thin:@192.168.1.250:1521:YIDEEORC102010";
public final static String dbName = "estock";
public final static String dbPass = "estock";
private Connection conn = null;
public Connection getConn() throws ClassNotFoundException, SQLException
{
if(conn == null)
{
Class.forName(driver);
conn = DriverManager.getConnection(url,dbName,dbPass);
}
return conn;
}
public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs)
{
if(rs != null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt != null)
{
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn != null)
{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public int executeSQL(String preparedSql,String[] param)
{
Connection conn = null;
PreparedStatement pstmt = null;
int num = 0;
try {
conn = getConn();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
pstmt = conn.prepareStatement(preparedSql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(param != null)
{
for(int i=1;i<param.length;i++)
{
try {
pstmt.setString(i+1, param[i]);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
try {
num = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
closeAll(conn,pstmt,null);
return num;
}}package test;import java.sql.Connection;
import java.sql.SQLException;import dao.BaseDao;public class Btest { /**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args){
BaseDao baseDao = new BaseDao();
Connection conn = null;
try {
conn = baseDao.getConn();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally
{
baseDao.closeAll(conn, null, null);
} }}
报错为:
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:
192.168.1.250:1521:YIDEEORC102010 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at dao.BaseDao.getConn(BaseDao.java:21)
at test.Btest.main(Btest.java:20)求助啊!!!
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class BaseDao {
public final static String driver = "oracle.jdbc.driver.OracleDriver";
public final static String url = "jdbc:oracle:thin:@192.168.1.250:1521:YIDEEORC102010";
public final static String dbName = "estock";
public final static String dbPass = "estock";
private Connection conn = null;
public Connection getConn() throws ClassNotFoundException, SQLException
{
if(conn == null)
{
Class.forName(driver);
conn = DriverManager.getConnection(url,dbName,dbPass);
}
return conn;
}
public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs)
{
if(rs != null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt != null)
{
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn != null)
{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public int executeSQL(String preparedSql,String[] param)
{
Connection conn = null;
PreparedStatement pstmt = null;
int num = 0;
try {
conn = getConn();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
pstmt = conn.prepareStatement(preparedSql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(param != null)
{
for(int i=1;i<param.length;i++)
{
try {
pstmt.setString(i+1, param[i]);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
try {
num = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
closeAll(conn,pstmt,null);
return num;
}}package test;import java.sql.Connection;
import java.sql.SQLException;import dao.BaseDao;public class Btest { /**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args){
BaseDao baseDao = new BaseDao();
Connection conn = null;
try {
conn = baseDao.getConn();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally
{
baseDao.closeAll(conn, null, null);
} }}
报错为:
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:
192.168.1.250:1521:YIDEEORC102010 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at dao.BaseDao.getConn(BaseDao.java:21)
at test.Btest.main(Btest.java:20)求助啊!!!
解决方案 »
- struts2和hibernate整合 Unable to load configuration. - [unknown location]
- 'jar' 不是内部或外部命令,也不是可运行的程序怎么解决
- java调色板发生了死循环,帮我下啊、、、
- weblogic 9 集群如何实现session复制
- 关于用HttpClient登陆页面产生的问题
- 控制打印机:可以识别有几台忙碌 ,然后自动接到下一台打印
- struts2.0问题
- 现在要用hibernate连接两个数据库(都是ORACLE),一个本地,一个远程的
- 又是简单问题
- powerdesigner问题???
- spring MVC一个Controller处理所有用户请求有并发的问题吗?
- DTO传值问题
# Generated by Oracle configuration tools.SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = YIDEEORC102010)
(ORACLE_HOME = D:\oracle)
(SID_NAME = PLSExtProc)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = user-d4e19b2d17)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
首先打开SQL*PLUS,用户名,密码,主机字符串为你的数据库名,然后输入 SELECT NAME FROM v$database (直接复制就行) 它会出现 NAME ---- XXXX ,再把上面的
jdbc:oracle:thin:@192.168.1.250:1521:YIDEEORC102010 中的红字部分改为它提示的XXX就好了。具体什么原理可能 红字是 SERVICE_NAME,而XXX是SID,应该是这样。O了,结贴~