JDBC技术

来源:互联网 发布:微单推荐 知乎 编辑:程序博客网 时间:2024/05/12 13:14

Java数据库编程主要使用JDBC技术。JDBC是一种用于执行SQL语句的Java API。它由一组用Java编写的类和接口组成。JDBC为开发人员提供了一个标准的API,使得他们能够用纯Java API来编写数据库应用程序。
利用JDBC,向各种关系数据库发送SQL语句就变成了一件很容易的事情。换言之,利用JDBC API,就不必专门为访问SQL Server数据库写一个程序,又专门为访问Oracle数据库写一个程序,为访问XXX数据库又写一个程序,有了JDBC,开发人员只需要用JDBC API写一个程序就够了,它可以向相应的数据库发送SQL语句。而且由于是使用Java编写的应用程序,就无须为不同的平台编写不同的应用程序。将Java和JDBC结合起来将使程序员只需写一遍程序就可以让它在任何平台上运行。
JDBC在应用程序中的体系架构图如下图所示:
这里写图片描述

JDBC的功能大体上可分为(1)与数据库建立连接(2)发送并执行SQL语句(3)处理结果
这些工作通过JDBC的以下几个核心类来完成。
1, DriverManager类。JDBC的管理层,用于注册并跟踪可用的驱动程序,同时在数据库和相应的驱动程序之间建立连接。DriverManager类的所有成员都是静态成员开发者在程序中无须对其进行实例化可以直接通过类名来调用其方法。(1)加载可用驱动程序。在JDBC中可以自动在DriverManager类中注册驱动程序,在程序中利用Class.forName()方法加载指定的驱动程序,这将显示地加载驱动程序类。由于这与外部设置无关,因此推荐使用这种驱动程序的方法。(2)建立连接。加载驱动程序类并在DriverManager类中注册后,即可与数据库建立连接了。对于简单的应用程序,开发者只需要直接使用DriverManager.getConnection()方法,准备建立与数据库的连接。当调用DriverManager.getConnection()方法发出连接请求时,DriverManager类将检查加载的驱动程序,查看它是否可以建立连接。DriverManager.getConnection()方法返回代表数据库连接的Connection对象。
2, Connection类。Connection对象代表与数据库的连接。常用数据库JDBC连接的URL格式如下图所示:
这里写图片描述
/图2/
Connection类是JDBC中主要的类之一,从事务处理到创建语句,从管理连接到向数据库发送查询,它提供了许多功能,Connection中的方法按照功能划分主要有以下几类:
(1) 向数据库发送SQL语句。createStatement()方法:创建Statement对象,此对象用于发送简单的SQL语句。prepareStatement()方法:创建PrepareStatement对象此对象用于发送带有一个或多个输入参数的SQL语句执行语句时,这些IN参数将被送到数据库中。PrepareCall()方法:创建CallableStatement对象,此对象用于执行SQL存储过程,它从PrepareStatement中继承了用于处理IN参数的方法,而且还增加了用于处理OUT参数和INOUT参数的方法。
(2) 事务处理。Void setAutoCommit()方法:设置此链接是否为自动提交方式。Void commit()方法:使得本数据库操作有效,它只能在非自动提交情况下使用。Void rollback:使本次数据库操作无效,它也只能在非自动提交的情况下使用
(3) 管理连接。Void close()方法:关闭数据库的连接并且释放所占用的JDBC资源。Void setReadOnly()方法:将连接设置为只读。
3, Statement类,由Connection类的createStatement()方法创建的用于将SQL语句发送到数据库中,作为在给定连接上执行SQL语句的包容器,Statement对象用于执行不带参数的简单SQl语句。Statement提供三种执行SQL语句的方法:executeQuery(),executeUpdate()和execute()。具体使用哪一个方法由SQL语句产生的内容决定。executeQuery()方法用于执行产生单个结果集的SQL语句,例如SELECT语句。executeUpdate()方法用于执行那些不返回结果集的SQL语句。例如INSERT、UPDATE或DELETE语句。其返回值是一个整数,表示受影响的行数。execute()方法用于执行返回多个结果集的SQL语句。Statement对象将由Java垃圾回收程序自动关闭。而为了避免潜在的内存问题,应该在不需要Statement对象时显示地调用close方法关闭它们。这将立即释放DBMS资源。
4, ResultSet类,提供对数据结果集的访问机制。结果集是一个二维表结构,其中包含查询所返回的列标题及相应的值。根据创建ResultSet对象的Statement及其子类的类型不同,ResultSet也分为单向ResultSet和可滚动ResultSet。ResultSet类始终有一个游标指向其当前数据行。生成ResultSet对象时,游标总是定位在第一行的前面。每一次调用next方法,光标将向下移动一行。因此第一次调用next()方法时,使它成为当前行。这样通过调用next()方法可以按照从上至下的次序获取ResultSet的行。getXXX()方法提供了获取当前行中某列值的途径。在每一行内,可按任意次序获取列值。列名或列号可用于标识要从中获取数据的列。例如,ResultSet对象rs的第二列名为“title”,并将值存储为字符串,则下列任一行代码都将获取存储在该列中的值。

String s=rs.getString("title");String s=rs.getString(2);

ResultSet中的列信息,被称为结果集的元数据,它被存储在ResultSetMetaData对象中,可通过调用ResultSet.getMetaData()方法得到返回的ResultSetMetaData对象将给出对应的ResultSet对象中各列的编号、类型和属性。

0 0
原创粉丝点击