jdbcoracle(jdbcoracle驱动)

本篇文章给大家谈谈jdbcoracle,以及jdbcoracle驱动对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何使用JDBC连接oracle数据库

楼主您好

1.在动手先代码之前,我们先把环境配置妥善。先从安装了Oracle的数颤兄据库服务器中,找到

Oracle安装目录,然后将该目录下的jdbc\lib\classes12.jar文件拷贝到WEB发布服务器的某个目录。假设就直接放在C:\根目录下吧,然后把该路径添加到„系统--高级--环境变量‟

中变量名为„CLASSPATH‟的值中,如:

D:\Program Files\SQLLIB\java\db2java.zip;D:\Program

Files\SQLLIB\java\runtime.zip;c:classes12.jar;

也茄丛袭郑碰就是让java能够找到这个包。

2

1.注册加载驱动

驱动名:DRIVER="oracle.jdbc.driver.OracleDriver";

Class.forName("驱动类名");

3

2.获得连接

数据库地址: URL="jdbc:oracle:thin:@127.0.0.1:1521:ORCL";

Connection conn = DriverManager.getConnection(数据库地址,用户名,密码);

System.out.println("连接成功");

4

3.创建Statement对象

Statement

类的主要是用于执行静态 SQL 语句并返回它所生成结果的对象。通过Connection 对象的

createStatement()方法可以创建一个Statement对象。例如:Statement statament =

connection.createStatement(); 具体示例创建Statement对象

Statement statamentMySQL =connectMySQL.createStatement();

[img]

JDBC连接Oracle数据库之十大技巧

;     java数据库连接(jdbc)api是一系列能够让java编程人员访问数据库的接口,各个开发商的接口并不完全相同。在使用多年的oracle公司的jdbc后,我积累了许多技巧,这些技巧能够配蚂使我们更好地发挥系统的性能和实现更多的功能。

1、在客户端软件开发中使用thin驱动程序

在开发java软件方面,oracle的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servlets等客户端软件,另外二种用于数据库中的java存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择oci驱动程序或thin驱动程序。oci驱动程序利用java本地化接口(jni),通过oracle客户端软件与数据库进行通讯。thin驱动程序是纯java驱动程序,它直接与数据库进行通讯。为了获得最高的性能,oracle建议在客户端软件的开发中使用oci驱动程序,这似乎是正确的。但我建议使用thin驱动程序,因为通过多次测试发现,在通常情况下,thin驱动程序的性能都超过了oci驱动程序。

2、关闭自动提交功能,提高系统性能

在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的。为了获得更好的性能,可以通过培消埋调用带布尔值false参数的connection类的setautocommit()方法关闭自动提交功能,如下所示:

conn.setautocommit(false);

值得注意的是,一旦关闭了自动提交功能,我们就需要通过调用connection类的commit()和rollback()方法来人工的方式对事务进行管理。

3、在动态sql或有时间限制的命令中使用statement对象

在执行sql命令时,我们有二种选择:可以使用preparedstatement对象,也可以使用statement对象。无论多少次地使用同一个sql命令,preparedstatement都只对它解析和编译一次。当使用statement对象时,每次执行一个sql命令时,都会对它进行解析和编译。这可能会使你认为,使用preparedstatement对象比使用statement对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的sql操作中,除非成批地处理sql命令,我们应当考虑使用statement对象。

此外,使用statement对象也使得编写动态sql命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的sql命令。因此,我认为,statement对象可以使动态sql命令的创建和执行变得更加简单。

 4、利用helper函数对动态sql命令进行格式化

在创建使用statement对象执行的动态sql命令时,我们需要处理一些格式化方面的问题。例如,如果我们想创建一个将名字o'reilly插入表中的sql命令,则必须使用二个相连的“''”号替换o'reilly中的“'”号。完成这些工作的最好的方法是创建一个完成替换操作的helper方法,然后在连接字符串心服用公式表达一个sql命令时,使用创建的helper方法。与此类似的是,我们可以让helper方法接受一个date型的值,然后让它输出基于oracle的to_date()函数的字符串表达式。

5、利用preparedstatement对象提高数据库的总体效率

在使用preparedstatement对象执行sql命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。然后,每当执行同一个preparedstatement对象时,它就会被再解析一次,但不会被再次编译。在缓冲区中可以发现预编译的命令,并且可以重新使用。在有大量用户的企业级应用软件中,经常会重复执行相同的sql命令,使用preparedstatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行preparedstatement任务需要的时间长于statement任务,我会建议在除动态sql命令之外的所有情况下使用preparedstatement对象桥让。

6、在成批处理重复的插入或更新操作中使用preparedstatement对象

如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。oracle提供的statement和 callablestatement并不真正地支持批处理,只有preparedstatement对象才真正地支持批处理。我们可以使用addbatch()和executebatch()方法选择标准的jdbc批处理,或者通过利用preparedstatement对象的setexecutebatch()方法和标准的executeupdate()方法选择速度更快的oracle专有的方法。要使用oracle专有的批处理机制,可以以如下所示的方式调用setexecutebatch():

preparedstatement pstmt3d null;try {((oraclepreparedstatement)pstmt).setexecutebatch(30);...pstmt.executeupdate();}

调用setexecutebatch()时指定的值是一个上限,当达到该值时,就会自动地引发sql命令执行,标准的executeupdate()方法就会被作为批处理送到数据库中。我们可以通过调用preparedstatement类的sendbatch()方法随时传输批处理任务。

7、使用oracle locator方法插入、更新大对象(lob)

oracle的preparedstatement类不完全支持blob和clob等大对象的处理,尤其是thin驱动程序不支持利用preparedstatement对象的setobject()和setbinarystream()方法设置blob的值,也不支持利用setcharacterstream()方法设置clob的值。只有locator本身中的方法才能够从数据库中获取lob类型的值。可以使用preparedstatement对象插入或更新lob,但需要使用locator才能获取lob的值。由于存在这二个问题,因此,我建议使用locator的方法来插入、更新或获取lob的值。

8、使用sql92语法调用存储过程

在调用存储过程时,我们可以使用sql92或oracle pl/sql,由于使用oracle pl/sql并没有什么实际的好处,而且会给以后维护你的应用程序的开发人员带来麻烦,因此,我建议在调用存储过程时使用sql92。

9、使用object sql将对象模式转移到数据库中

既然可以将oracle的数据库作为一种面向对象的数据库来使用,就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建java bean作为伪装的数据库对象,将它们的属性映射到关系表中,然后在这些bean中添加方法。尽管这样作在java中没有什么问题,但由于操作都是在数据库之外进行的,因此其他访问数据库的应用软件无法利用对象模式。如果利用oracle的面向对象的技术,可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作,然后使用jpublisher等工具生成自己的java bean类。如果使用这种方式,不但java应用程序可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。

10、利用sql完成数据库内的操作

我要向大家介绍的最重要的经验是充分利用sql的面向集合的方法来解决数据库处理需求,而不是使用java等过程化的编程语言。

如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的update命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个update命令中完成。当能够在单一的sql命令中完成任务,何必要让数据在网上流来流去的?我建议用户认真学习如何最大限度地发挥sql的功能

怎样利用JDBC连接并操作Oracle数据库

文件用:ojdbc6.jar

/**

* 一个非常标准的连接Oracle数据库的示例代码

*/

public void testOracle()

{

    Connection con = null;// 创建一个数据库连接

    PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement

    ResultSet result = null;// 创建一个结果集对象

    try

    {

        Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序

        System.out.println("开始尝试连接数据库!");

        String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库的SID

  袭升    拍渗老  // 如果是服务名,则用String url = "jdbc:oracle:thin:@127.0.0.1:1521/ORCL

        String user = "system";// 用户名,系统默认的账户名

        String password = "147";// 你安装时选设置的密码

        con = DriverManager.getConnection(url, user, password);// 获取连接

        System.out.println("连接成功!");

        String sql = "select * from student where name=?";// 预编译语句,“?”代表参数

        pre = con.prepareStatement(sql);// 实例化预编译语句

        pre.setString(1, "刘显安");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引

        result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数

        while (result.next())

            // 当结果集不为空时

            System.out.println("学号:" + result.getInt("id") + "姓名:"

                    + result.getString("name"));

    喊棚}

    catch (Exception e)

    {

        e.printStackTrace();

    }

    finally

    {

        try

        {

            // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源

            // 注意关闭的顺序,最后使用的最先关闭

            if (result != null)

                result.close();

            if (pre != null)

                pre.close();

            if (con != null)

                con.close();

            System.out.println("数据库连接已关闭!");

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

    }

}

JDBC连接ORACLE

下面是用JAVA 通过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();

如何通过JDBC连接Oracle数据库获取表名列表

查询所有表名(以用户HR为例):1·登录所要查询袭庆的用户然后指令:selecttable_namefromuser_tables;2·登录系统管拍拿握理员用户然后指令:selecttable_namefromdba_tableswhereowner='HR';查询所有索敏弊引(以用户hr为例):登录所要查询的用户然后指令:selectuser_indexes.index_name,user_indexes.index_type,user_indexes.table_ownerfromuser_indexes;·登录系统管理员用户然后指令:SELECTindex_name,index_type,ownerFROMdba_indexesWHEREowner='HR'ANDTable_owner='EMPLOYEES';

关于jdbcoracle和jdbcoracle驱动的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表