求救:jdbc_odbc链接oracle数据库失败,代码如下,运行后,显示:常连接到数据库。 但没有抓到资料。
packagecom.test;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql...
package com.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test1
{
public static void main(String[] args)
{
Connection conn;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e)
{
System.out.println("驱动异常!");
}
try
{
Connection ct = DriverManager.getConnection("jdbc:odbc:test","system","chytbc");
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from users");
while(rs.next())
{
//用户名
System.out.println("用户名:" + rs.getString(2));
}
System.out.println("正常连接到数据库。");
}
catch(Exception e)
{
System.out.println("连接错误!");
}
}
}
-------------------
oracle数据库的资料:
select * from users;
USERID USERNAME USERPASSWD
-------------------- ------------------------------ ------------------------------
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn 展开
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test1
{
public static void main(String[] args)
{
Connection conn;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e)
{
System.out.println("驱动异常!");
}
try
{
Connection ct = DriverManager.getConnection("jdbc:odbc:test","system","chytbc");
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from users");
while(rs.next())
{
//用户名
System.out.println("用户名:" + rs.getString(2));
}
System.out.println("正常连接到数据库。");
}
catch(Exception e)
{
System.out.println("连接错误!");
}
}
}
-------------------
oracle数据库的资料:
select * from users;
USERID USERNAME USERPASSWD
-------------------- ------------------------------ ------------------------------
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn
001 趴趴熊会趴趴 tangmin024@yahoo.com.cn 展开
展开全部
得用ORACLE的JDBC驱动,转几篇文章给你,估计能解决问题:
1.新建一个JAVA程序
2.导入要用到的ORACLE JDBC包..(在新建项目的时候,选择"库"选项卡-->添加外部JAR..)当然在建立好项目以后点属性也可以....在你的ORACLE的安装目录下找到\jdbc\lib\classes12.zip,引入进来
3.其他的就是编码.
给你一个例子
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:数据库名","用户名","密码");
15.3 Oracle JDBC驱动程序
本节介绍各种Oracle JDBC驱动程序,它们允许Java程序中的JDBC语句访问Oracle数据库。Oracle JDBC驱动程序有4种:
● Thin驱动程序
● OCI驱动程序
● 服务器端内部驱动程序
● 服务器端Thin驱动程序
下面各小节分别介绍这些驱动程序。
15.3.1 Thin驱动程序
Thin驱动程序是占用内存最小的驱动程序,也就是说运行它所需的系统资源最少,它全部是用Java编写的。如果编写一个Java applet,应该使用Thin驱动程序。Thin驱动程序还可以用于独立Java应用程序,并用于访问所有版本的Oracle数据库。Thin驱动程序只支持TCP/IP,并要求启动和运行Oracle Net。关于Oracle Net的详细信息,可以参阅由Oracle公司出版的Oracle Database Net Services Administrator’s Guide。
注意:
使用Thin驱动程序不需要在客户计算机上安装任何软件,因此它可以用于applet。
15.3.2 OCI驱动程序
OCI驱动程序需要的资源比Thin驱动程序的要多,但是通常具有更好的性能。OCI驱动程序适合部署在中间层(例如,Web服务器)上的程序。
注意:
OCI驱动程序需要安装在客户计算机上,所以不适用于applet。
OCI驱动程序具有许多性能增强的特性,包括数据库连接池、从数据库中预取行。OCI驱动程序支持所有版本的数据库和所有支持的Oracle Net协议。
15.3.3 服务器端内部驱动程序
服务器端内部驱动程序提供对数据库的直接访问,Oracle JVM使用该驱动程序与数据库通信。Oracle JVM是一个Java虚拟机(Java Virtual Machine),它与数据库集成。可以将Java类加载到数据库中,然后使用Oracle JVM发布并运行该类包含的方法。Java代码运行在数据库服务器上,并可以从单一的Oracle会话访问数据。
15.3.4 服务器端Thin驱动程序
服务器端Thin驱动程序也用于Oracle JVM,提供对远程数据库的访问。和Thin驱动程序一样,服务器端Thin驱动程序也完全用Java编写。使用服务器端Thin驱动程序的Java代码可以访问相同的数据库服务器或某个远程服务器上的另一个会话。
JDBC Oracle驱动SQL 2009-10-22 20:07:53 阅读43 评论0 字号:大中小 订阅 .
public static Connection Oracl(){
String sUsr="taotao";
String sPwd="tao5201920";
Connection conn=null;
//加载jdbc-odbc 桥驱动程序
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.3:1521:orcl",sUsr,sPwd);
conn.setAutoCommit(false);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("连接成功!");
return conn;
}
Oracle与JDBC数据库 2007-12-08 22:14:23 阅读22 评论0 字号:大中小 订阅 .
【用JDBC连接Oracle数据库】
一、软件需求:
JDK、Orcale Client软件(带有Oracle JDBC驱动程序)、Oracle数据库服务器、Oracle Net、Oracle9iAS Containers for J2EE(简称OC4J)。
只要在一台电脑上安装了Oracle数据库服务器,就一般同时拥有了Orcale Client软件(带有Oracle JDBC驱动程序)、Oracle Net、OC4J,数据库
服务器、Oracle Net和OC4J可以运行在网络上的任意一台电脑上,而通过JDBC连接数据库的客户端程序可以在另外的电脑(安装了Orcale Client软
件)上运行。
Orcale Client软件的安装目录下有一个jdbc子目录,它的内容如下:
·readme.txt,包含Oracle JDBC驱动程序的重要信息。
·doc子目录中有一个ZIP文件,它包含了Oracle JDBC API参考文档。
·demo子目录中有一个ZIP文件,它包含了Oracle提供的示例java程序。
·lib子目录,有多个ZIP文件和JAR(Java Achive,java归档文件),这是Oracle JDBC驱动程序所在的目录。
二、配置环境变量:
·JAVA_HOME = F:\WebServers\Java\jdk1.5.0 (JDK的安装目录,如果要使用Java 2 Enterprise Edition,那么还要设置J2EE_HOME)。
·ORACLE_HOME = F:\Win2K\Oracle\Ora90 (Oracle的安装目录)。
·classpath = .;%JAVA_HOME%\LIB\dt.jar;%JAVA_HOME%\LIB\tools.jar;%ORACLE_HOME%\JDBC\LIB\classes12.zip;%ORACLE_HOME%\JDBC\LIB\nls_charset12.zip;%ORACLE_HOME%\JDBC\LIB\jta.zip;%ORACLE_HOME%\JDBC\LIB\jndi.zip;%ORACLE_HOME%\SQLJ\LIB\translator.zip;%ORACLE_HOME%\SQLJ\LIB\runtime.zip
(如果要使用ava 2 Enterprise Edition,那么还要设置J2EE_CLASSPATH)。
·path = %path%;%JAVA_HOME%\BIN;%ORACLE_HOME%\BIN
说明:
1、JDK的版本要与Oracle JDBC驱动程序的版本相兼容,一般采用最新版本就没有问题。
2、环境变量classpath包含的是java类包的位置列表,可以是目录名,也可以是包含类的ZIP文件或JAR文件。
·如果使用JDK1.2.x或更高版本,则要在classpath中加入classes12.zip(或classes12.jar)。
·如果需要National Language支持,则要在classpath中加入nls_charset12.zip(或nls_charset12.jar)。
·如果需要使用Java Transaction API(JTA),则要在classpath中加入jta.zip(或jta.jar)。
·如果需要使用Java Naming and Directory Interface(JNDI),则要在classpath中加入jndi.zip(或jndi.jar)。
以上的ZIP文件和JAR文件都在%ORACLE_HOME%\JDBC\LIB目录中,该目录中还有一些名字与上面的ZIP或JAR文件相似但以11结束的文件,这些是
与java1.1.x相兼容的文件,当系统中使用的JDK是java1.1.x时,就要使用这些文件来代替上面的文件。
3、classpath中一般都加入“.;”,它表示当前程序运行的目录,也就是指示程序在当前运行目录中找java类包。
三、一个连接Oracle的示例程序test.java:
import java.sql.*; //这是JDK提供的标准JDBC驱动程序包。但如果要使用Oracle的特性,就需要Oracle的JDBC扩展。
public class test{
public static void main(String args[])
{
Connection conn=null;
Statement sql=null;
/*这一段代码与下面的一句DriverManager.registerDriver()完成相同的功能,所以推荐下面的一句
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e){
//System.out.println("Error code="+e.getErrorCode()); //ClassNotFoundException类没有这个方法
System.out.println("Error message="+e.getMessage());
}
*/
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());//与上面的代码段完成相同功能
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:OEMREP","system","manager"); //连接字符串中的OEMREP是Oracle数据库例程的SID
sql=conn.createStatement();
ResultSet rs=sql.executeQuery("select user,sysdate from dual"); //dual表是每一个Oracle数据库都会有的表,它存储了Oracle数据库的内置变量,如user、sysdate等。
if(rs.next())
System.out.println("Hello,"+rs.getString("user")+",the current date and time is "+rs.getTimestamp("sysdate"));
rs.close();
}catch(SQLException E){
System.out.println("Error code = "+E.getErrorCode());
System.out.println("Error message = "+E.getMessage());
}finally{
try{
if(sql!=null) sql.close();
if(conn!=null) conn.close();
}catch(SQLException E){
System.out.println("Error code = "+E.getErrorCode());
System.out.println("Error message = "+E.getMessage());
}
}
}
1.新建一个JAVA程序
2.导入要用到的ORACLE JDBC包..(在新建项目的时候,选择"库"选项卡-->添加外部JAR..)当然在建立好项目以后点属性也可以....在你的ORACLE的安装目录下找到\jdbc\lib\classes12.zip,引入进来
3.其他的就是编码.
给你一个例子
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:数据库名","用户名","密码");
15.3 Oracle JDBC驱动程序
本节介绍各种Oracle JDBC驱动程序,它们允许Java程序中的JDBC语句访问Oracle数据库。Oracle JDBC驱动程序有4种:
● Thin驱动程序
● OCI驱动程序
● 服务器端内部驱动程序
● 服务器端Thin驱动程序
下面各小节分别介绍这些驱动程序。
15.3.1 Thin驱动程序
Thin驱动程序是占用内存最小的驱动程序,也就是说运行它所需的系统资源最少,它全部是用Java编写的。如果编写一个Java applet,应该使用Thin驱动程序。Thin驱动程序还可以用于独立Java应用程序,并用于访问所有版本的Oracle数据库。Thin驱动程序只支持TCP/IP,并要求启动和运行Oracle Net。关于Oracle Net的详细信息,可以参阅由Oracle公司出版的Oracle Database Net Services Administrator’s Guide。
注意:
使用Thin驱动程序不需要在客户计算机上安装任何软件,因此它可以用于applet。
15.3.2 OCI驱动程序
OCI驱动程序需要的资源比Thin驱动程序的要多,但是通常具有更好的性能。OCI驱动程序适合部署在中间层(例如,Web服务器)上的程序。
注意:
OCI驱动程序需要安装在客户计算机上,所以不适用于applet。
OCI驱动程序具有许多性能增强的特性,包括数据库连接池、从数据库中预取行。OCI驱动程序支持所有版本的数据库和所有支持的Oracle Net协议。
15.3.3 服务器端内部驱动程序
服务器端内部驱动程序提供对数据库的直接访问,Oracle JVM使用该驱动程序与数据库通信。Oracle JVM是一个Java虚拟机(Java Virtual Machine),它与数据库集成。可以将Java类加载到数据库中,然后使用Oracle JVM发布并运行该类包含的方法。Java代码运行在数据库服务器上,并可以从单一的Oracle会话访问数据。
15.3.4 服务器端Thin驱动程序
服务器端Thin驱动程序也用于Oracle JVM,提供对远程数据库的访问。和Thin驱动程序一样,服务器端Thin驱动程序也完全用Java编写。使用服务器端Thin驱动程序的Java代码可以访问相同的数据库服务器或某个远程服务器上的另一个会话。
JDBC Oracle驱动SQL 2009-10-22 20:07:53 阅读43 评论0 字号:大中小 订阅 .
public static Connection Oracl(){
String sUsr="taotao";
String sPwd="tao5201920";
Connection conn=null;
//加载jdbc-odbc 桥驱动程序
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.3:1521:orcl",sUsr,sPwd);
conn.setAutoCommit(false);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("连接成功!");
return conn;
}
Oracle与JDBC数据库 2007-12-08 22:14:23 阅读22 评论0 字号:大中小 订阅 .
【用JDBC连接Oracle数据库】
一、软件需求:
JDK、Orcale Client软件(带有Oracle JDBC驱动程序)、Oracle数据库服务器、Oracle Net、Oracle9iAS Containers for J2EE(简称OC4J)。
只要在一台电脑上安装了Oracle数据库服务器,就一般同时拥有了Orcale Client软件(带有Oracle JDBC驱动程序)、Oracle Net、OC4J,数据库
服务器、Oracle Net和OC4J可以运行在网络上的任意一台电脑上,而通过JDBC连接数据库的客户端程序可以在另外的电脑(安装了Orcale Client软
件)上运行。
Orcale Client软件的安装目录下有一个jdbc子目录,它的内容如下:
·readme.txt,包含Oracle JDBC驱动程序的重要信息。
·doc子目录中有一个ZIP文件,它包含了Oracle JDBC API参考文档。
·demo子目录中有一个ZIP文件,它包含了Oracle提供的示例java程序。
·lib子目录,有多个ZIP文件和JAR(Java Achive,java归档文件),这是Oracle JDBC驱动程序所在的目录。
二、配置环境变量:
·JAVA_HOME = F:\WebServers\Java\jdk1.5.0 (JDK的安装目录,如果要使用Java 2 Enterprise Edition,那么还要设置J2EE_HOME)。
·ORACLE_HOME = F:\Win2K\Oracle\Ora90 (Oracle的安装目录)。
·classpath = .;%JAVA_HOME%\LIB\dt.jar;%JAVA_HOME%\LIB\tools.jar;%ORACLE_HOME%\JDBC\LIB\classes12.zip;%ORACLE_HOME%\JDBC\LIB\nls_charset12.zip;%ORACLE_HOME%\JDBC\LIB\jta.zip;%ORACLE_HOME%\JDBC\LIB\jndi.zip;%ORACLE_HOME%\SQLJ\LIB\translator.zip;%ORACLE_HOME%\SQLJ\LIB\runtime.zip
(如果要使用ava 2 Enterprise Edition,那么还要设置J2EE_CLASSPATH)。
·path = %path%;%JAVA_HOME%\BIN;%ORACLE_HOME%\BIN
说明:
1、JDK的版本要与Oracle JDBC驱动程序的版本相兼容,一般采用最新版本就没有问题。
2、环境变量classpath包含的是java类包的位置列表,可以是目录名,也可以是包含类的ZIP文件或JAR文件。
·如果使用JDK1.2.x或更高版本,则要在classpath中加入classes12.zip(或classes12.jar)。
·如果需要National Language支持,则要在classpath中加入nls_charset12.zip(或nls_charset12.jar)。
·如果需要使用Java Transaction API(JTA),则要在classpath中加入jta.zip(或jta.jar)。
·如果需要使用Java Naming and Directory Interface(JNDI),则要在classpath中加入jndi.zip(或jndi.jar)。
以上的ZIP文件和JAR文件都在%ORACLE_HOME%\JDBC\LIB目录中,该目录中还有一些名字与上面的ZIP或JAR文件相似但以11结束的文件,这些是
与java1.1.x相兼容的文件,当系统中使用的JDK是java1.1.x时,就要使用这些文件来代替上面的文件。
3、classpath中一般都加入“.;”,它表示当前程序运行的目录,也就是指示程序在当前运行目录中找java类包。
三、一个连接Oracle的示例程序test.java:
import java.sql.*; //这是JDK提供的标准JDBC驱动程序包。但如果要使用Oracle的特性,就需要Oracle的JDBC扩展。
public class test{
public static void main(String args[])
{
Connection conn=null;
Statement sql=null;
/*这一段代码与下面的一句DriverManager.registerDriver()完成相同的功能,所以推荐下面的一句
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e){
//System.out.println("Error code="+e.getErrorCode()); //ClassNotFoundException类没有这个方法
System.out.println("Error message="+e.getMessage());
}
*/
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());//与上面的代码段完成相同功能
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:OEMREP","system","manager"); //连接字符串中的OEMREP是Oracle数据库例程的SID
sql=conn.createStatement();
ResultSet rs=sql.executeQuery("select user,sysdate from dual"); //dual表是每一个Oracle数据库都会有的表,它存储了Oracle数据库的内置变量,如user、sysdate等。
if(rs.next())
System.out.println("Hello,"+rs.getString("user")+",the current date and time is "+rs.getTimestamp("sysdate"));
rs.close();
}catch(SQLException E){
System.out.println("Error code = "+E.getErrorCode());
System.out.println("Error message = "+E.getMessage());
}finally{
try{
if(sql!=null) sql.close();
if(conn!=null) conn.close();
}catch(SQLException E){
System.out.println("Error code = "+E.getErrorCode());
System.out.println("Error message = "+E.getMessage());
}
}
}
2010-11-28
展开全部
你用单元测试看看,读取数据出来没呢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询