设为首页 收藏本站
查看: 1370|回复: 0

[经验分享] oracle连接java的几种方法

[复制链接]

尚未签到

发表于 2016-7-25 09:39:21 | 显示全部楼层 |阅读模式
  归结来说有JDBC、ODBC-JDBC桥接 两种方法:
  一、JDBC连接 Oracle的步骤
(1)装载并注册数据库的JDBC驱动程序

载入JDBC驱动:

Class.forName("oracle.jdbc.driver.OracleDriver");

注册JDBC驱动:

java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

(2)建立与数据库的连接

要建立与数据库的连接,首先要创建指定数据库的URL。连接数据库的URL对象,利用DriverManager 的getConnection方法建立的。数据库URL对象与网络资源的统一资源定位类似,其构成格式如下:

jdbc:subProtocol:subName://hostname:port;DatabaseName=ⅹⅹⅹ

其中:

jdbc表示当前通过Java的数据库连接进行数据库访问;

subProtocol表示通过某种驱动程序支持的数据库连接机制;

subName表示在当前连接机制下的具体名称;

hostname表示主机名;

port表示相应的连接端口;

DatabaseName表示要连接的数据库的名称。

这里以与Oracle数据库的连接为例:

连接Oracle 8/8i/9i数据库(用thin模式)

url = jdbc:oracle:thin:@hostip:1521:oracleSID;

注意:hostip指主机的ip地址,oracleSID指数据库的SID。

再者确定连接数据库的用户名与密码,即user和password 的值:

user = “ⅹⅹⅹ “;

password = “ⅹⅹⅹ“;

最后使用如下语句:

Connection con=java.sql.DriverManager.getConnection(url,user,password);

(3)创建Statement对象

例如:

Statement stmt = con.createStatement();

(4)调用并执行SQL语句

例如:

String sql = “select a,b,c from table1";//table1为你所要查询的表名,a,b,c为所要查询的字段

ResultSet rs = stmt.executeQuery(sql);

(5)访问ResultSet中的记录集并从中取出记录

例如:

rs.next( );

rs.absolute(4);

String col1=rs.getString(1);

……..

(6)依次关闭ResultSet、Statement和Connection对象

例如:

rs.close();

stmt.close();

con.close();
  
  二、ODBC-JDBC桥接
1、工作原理:
     JDBC- ODBC (Open Database Connectivity,ODBC) 桥驱动程序由Sun Merant公司合开, 主要功能是JDBC API转换ODBC API , 然后ODBC API针对商的ODBC 驱动程序来访问数据, 即利用JDBC- ODBC ODBC来存数据源。如下JDBC-ODBC用模式
DSC0000.png
  
                                                                      1.1JDBC-ODBC用模式
         JDBC- ODBC 是一个JDBC 驱动程序, ODBC 而言, 它像是通用的用程序, 桥为所有适用于ODBC 的数据库实现JDBC。它作sun.jdbc.odbc 实现, 其中包含一个用来访问ODBC 的本地。由于ODBC 被广泛地使用, 所以点是JDBC 够访问几乎所有的数据支持ODBC 2.x, 是当前大多数据ODBC 驱动程序支持的版本。桥驱动程序Java 用程序提供了一种把JDBC 用映射ODBC 用的方法。因此,需要在客端机器上安装ODBC 驱动JDBC-ODBC JDBCAPI ODBCAPI提供了一个梁,准的JDBC 用翻对应ODBC 用,然后通ODBC 把它们发送到ODBC 数据源。
2JDBC-ODBC所用的配置
    sun.jdbc.odbc JDK 一起自安装, 无需特殊配置Java 2 SDK 类库中包含了用于JDBC-ODBC驱动程序的, 因此不再需要安装任何附加包就可以使用。但是机需要通生成数据源名(Data Source Names , DSN)来配置ODBC 管理器DSN 是一个把数据驱动程序、一些可接起来的命名配置。具体配置方法如下( Windows XP 境下) :
         ( 1) 控制面板中, 管理工具数据源(ODBC)->DSN;(如2.1
  
 
DSC0001.png

 
 2.1
         ( 2) ODBC 数据源管理器中的DSN”中添加系数据源(如果没有找到数据源的驱动程序需要下安装)要注意, 一定要用系(DSN)数据源, 不能用用(DSN)数据源, servlet (DSN), 所有的jsp servlet程序, 需要jdbc- odbc 驱动, 都只能用系( DSN) 数据源, 不能用用( DSN) 数据源。

3、各数据的不同配置(解)
    3.1 Access
           (1)添加->Driver do Microsoft Access(*.mdb)->完成
DSC0002.png
             (2)入数据源名称yiliangdian_access   
     3)在数据库标签-->选择,在列表中选择需要接的数据student.
  

DSC0003.png
     
  4单击置登名称yiliangdian与密123456与程序中DriverManager.getConnection("jdbc:odbc:yiliangdian_access","yiliangdian","123456")一致。
DSC0004.png
      3.2 mysql
            (1) access中的(1)。
            (2)选择mysql数据源驱动,如果没有需要下安装。->完成
  
DSC0005.png
         (3)入数据源名称yiliangdian_mysql,Server:localhost(如果接其它主机,IP),User:root,Password:123456,Databasse:student. ->OK
  
DSC0006.png
4
/**
* filename: joaccess.java
* fuction: 实现jdbc-odbc桥连接方式方式
* writtenby yiliangdian @ 2008-4-18
**/
import java.sql.*;
  public class joaccess {
   public static void main(String[] args) {
      //建立和数据库的连接时要用好Connection接口

Connection con;
      //
提供在基层连接上运行SQL语句
Statement sql;
      //
Statement执行了SQL语句以后,结果值是以结果集的方式返回的。
ResultSet rs;
      try {
         
//jdbc-odbc桥连接方式需要加载jdbc-odbc方式的驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     }catch(ClassNotFoundException e){
          System.out.println(""+e);
     }
     try{
           //DriverManager类是JDBC的管理层,作用于用户和驱动之间。DriverManager类跟踪可用的驱动

//程序,并在数据库和相应驱动程序之间建立连接。chenyuaccess是建立的数据源名称,后两项是
//用户名,密码是建立数据源时设立的与数据库中的密码无关,该用户名密码可以为空。
//不同的数据库连接只需要改变源名称,用户名和密码
con = DriverManager.getConnection("jdbc:odbc:yiliangdian_access","yiliangdian","123456");
            //创建Statement,获取Statement实例,用于执行SQL语句

sql = con.createStatement();
            //运行查询语句,返回ResultSet对象

rs = sql.executeQuery("select * from chengjibiao");
            while(rs.next()){
                    String number = rs.getString(1);
                   String name = rs.getString(2);
                   Date date = rs.getDate(3);
                   int math = rs.getInt(4);
                     System.out.println("学号:
" + number);
                   System.out.println("姓名:
" + name);
                   System.out.println("生日:
" + date);
                   System.out.println("数学:
" + math);
              }
         
con.close();
     }catch(SQLException e1)
     {
                System.out.println("sql语句出错
:"+e1);
       }
}
}

  
  参考:http://tayueerlai01.bokee.com/500929271.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248992-1-1.html 上篇帖子: ORACLE连接实现之HASH JOIN 下篇帖子: Oracle学习笔记5_简单查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表