我的代码如下:
import java.sql.*;
import java.math.*;
import java.io.*;
import java.awt.*;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class OCIConnectionTest {
public OCIConnectionTest() {
}public static void main (String args []) throws SQLException {
// Load Oracle driver
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// Connect to the local database
Connection conn = DriverManager.getConnection
("jdbc:oracle:oci:@192.168.1.20:1521:ORCL", "pm_arison_it", "pm_arison_it");
// Query the employee names
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("SELECT ACTIVITY_NAME FROM ACTIVITY");
// Print the name out
while (rset.next())
System.out.println(rset.getString(1));
//close the result set, statement, and the connection
rset.close();
stmt.close();
conn.close();
}}出现错误如下:
java.lang.UnsatisfiedLinkError: make_c_state at oracle.jdbc.oci8.OCIDBAccess.make_c_state(Native Method) at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:309) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:287) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at test.jdbc.OCIConnectionTest.main(OCIConnectionTest.java:25)Exception in thread "main" 这是驱动没有装对吗,还是……
import java.sql.*;
import java.math.*;
import java.io.*;
import java.awt.*;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class OCIConnectionTest {
public OCIConnectionTest() {
}public static void main (String args []) throws SQLException {
// Load Oracle driver
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// Connect to the local database
Connection conn = DriverManager.getConnection
("jdbc:oracle:oci:@192.168.1.20:1521:ORCL", "pm_arison_it", "pm_arison_it");
// Query the employee names
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("SELECT ACTIVITY_NAME FROM ACTIVITY");
// Print the name out
while (rset.next())
System.out.println(rset.getString(1));
//close the result set, statement, and the connection
rset.close();
stmt.close();
conn.close();
}}出现错误如下:
java.lang.UnsatisfiedLinkError: make_c_state at oracle.jdbc.oci8.OCIDBAccess.make_c_state(Native Method) at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:309) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:287) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at test.jdbc.OCIConnectionTest.main(OCIConnectionTest.java:25)Exception in thread "main" 这是驱动没有装对吗,还是……
Oracle的JDBC驱动程序在Oracle客户端的安装目录下面有,是classes12.jar
如果是Tomcat,classes12.jar要放到tomcat安装目录下的
common\lib下面或者在你网页根目录下建一个lib目录,放到里面试试看。
我如果用jdbc的话,把url改成(jdbc:oracle:thin:@192.168.1.20:1521:ORCL", "xxx","xxx")就可以用了,但换成上面的就不行了,是这种写发不对吗?还是我的驱动没有装对?
yshen:
我用的是jboss-3.2.0RC1_tomcat-4.1.18,jdbc方式的连接我是可以使用的,只是目前需要转换成oci的方式连接!
其中的server_sid是你用oracle组件net8配置的本地网络服务名,也就是说你机器上要先装上Oracle的net service组件。
thin 和 oci 楼主提到的是第二种方式目前oci 又分oci7和oci8使用oci连接Oracle数据库其实是使用安装的oracle的客户端程序Net8 Configuration Assistant和数据库连接。在
Net8 Configuration Assistant中配置一个别名例如 ocitest 并测试和数据库连接成功
URL "jdbc:oracle:oci8:@ocitest.world"