关于Eclipse通过JDBC或者ODBC连接Oracle

  首先,建一个java项目Creep_TestOracle,在项目下建一个包oracle_test。

(1)使用odbc连接oracle

package oarcle_test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 使用odbc连接oracle
 * @author TF
 *
 */
public class TestOracle {
	
	public static void main(String[] args) {
		
		try {
			//1.加载驱动
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			//2.得到连接
			Connection conn = DriverManager.getConnection("jdbc:odbc:shenzhou", "scott", "0108");
			//3.从下面开始和 sql server 一模一样
			Statement statement = conn.createStatement();
			
			ResultSet resultSet = statement.executeQuery("select * from emp");
			
			while(resultSet.next()){
				
				//用户名
				System.out.println("用户名:" + resultSet.getString(2));
			}
			
			resultSet.close();
			statement.close();
			conn.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
Class.forName()方法,里面的参数是固定的。

Connection conn = DriverManager.getConnection("jdbc:odbc:shenzhou", "scott", "0108");

第一个参数:jdbc:odbc:xxx,其中的xxx是oracle的数据源

第二个参数:scott是oracle的scott表

第三个参数:表的口令(即密码)

*****创建oracle的数据源

我的电脑--->控制面板--->管理工具--->数据源(ODBC)--->用户DSN,添加---->找到oracle的驱动,点击完成--->Data source Name: 你的数据源名字,我的是shenzhou 

TNS service Name: 你的oracle数据库实例,我的是ORCL



这样数据源就搞好了,数据库就连接成功了。


(2)jdbc连接oracle

package oarcle_test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 使用jdbc连接oracle
 * @author TF
 */
public class TestOracle2 {
	
	public static void main(String[] args) {
		
		try {
			//1.加载驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			//2.得到连接
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "0108");
			System.out.println("加载数据库驱动成功!");
			
			//3.从下面开始和 sql server 一模一样
			Statement statement = conn.createStatement();
			
			ResultSet resultSet = statement.executeQuery("select * from emp");
			
			while(resultSet.next()){
				//用户名
				System.out.println("用户名:" + resultSet.getString(2));
			}
			
			resultSet.close();
			statement.close();
			conn.close();
			
		} catch (Exception e) {
			System.out.println("加载数据库驱动失败!");
		}
	}
}

如果运行成功,会在控制台显示scott的员工名字。

但是,也可能会运行出错,抛异常。

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at oracletest.OracleTest.main(OracleTest.java:9)
这是因为我们没有导入oracle的jdbc包,现在开始导入jdbc包。

在项目名称上右击--->properties --> Java Build Path ---> Libraries --->Add Exterban JARS

然后选择oracle的jdbc目录,选择D:\app\TF\product\11.2.0\dbhome_1\owb\wf\lib下的ojdbc14.jar,点击ok。

然后就能连接成功。




***************注:

 private String user="scott";

 private String password="tiger";

 private String className="oracle.jdbc.driver.OracleDriver";
 private String url="jdbc:oracle:oci@localhost:1158:orcl";   //这个url可能无效
 private String url = "jdbc:oracle:thin:@hr-PC:1521:orcl";hr-PC和1521很关键,也就是侦听串里有没有这个,在
D:\app\TF\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora这个文件里有没有,一定要根据tnsnames.ora这个文件来配置url路径,否则会出错!!!


环境:
操作系统:64位WIN7 数据库:SQL Server 2000 SP1 开发语言:J2EE
在Servlet连接数据库时出错提示:
[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

解决方法:
升级SQL Server 2000 SP SP1 至SQL Server 2000 SP SP4或更高版本。启用odbc配置程序,SQL Server自带有两个版本的odbc配置程序:
64位版的位置:C:\windows\system32\odbcad32.exe
32位版的位置:C:\windows\sysWOW64\odbcad32.exe
通过32位版的ODBC配置正确系统DNS后,即可正常执行。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值