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

来源:互联网 发布:淘宝店铺开店日期 编辑:程序博客网 时间:2024/05/22 07:42

  首先,建一个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.OracleDriverat 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 0
原创粉丝点击