JAVA访问数据库之概述

JAVA类库中包含一组用于访问数据库的接口和类,作为开发数据库应用程序的API。这些接口和类统称为JDBC(Java DataBase Connectivity),JDBC是访问数据库的类和接口的结合。对于数据库的操作,在整个Java学习过程中至关重要。

JDBC简介

JDBC提供了连接各种常用数据库的能力。有了JDBC,访问数据库就是一件很容易的事,有了JDBC,就不必为访问Sysbase数据库和Oracle数据库来专门写一个程序。程序员只需要JDBC API写一个程序就可以了,它可以向相应的数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只需要写一遍程序就可以让它在任何平台上运行。

JDBC驱动

JDBC驱动由数据库厂商提供,在实际编写过程中,有两种较为常用的驱动方式。第一种是JDBC-ODBC桥连,通过ODBC与数据库进行连接;另一种是纯Java驱动方式,它直接与数据库进行连接

JDBC-ODBC桥连

JDBC-ODBC桥连可以把JDBC API调用转换成ODBC API调用,然后ODBC API调用指针对供应商的ODBC驱动程序来访问数据库,即利用 JDBC-ODBC桥连通过ODBC来存储数据源。
JDBC-ODBC桥作为包sun.jdbc.odbc与JDK一起安装,无需特殊配置。但是在客户机需要通过声称数据源名来配置ODBC管理器。
假设配置了一个名称为Test的ODBC数据源,登录名为:sa,密码为:sa,则我们可以通过如下方式建立一个数据库连接。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:Test", "sa", "sa");

需要注意的是JDBC-ODBC不能提供非常好的性能,一般不适合在实际系统中使用。

纯Java驱动方式

纯Java驱动方式由JDBC驱动直接访问数据库,驱动程序完全由Java语言编写,运行速度快,且具备跨平台的特点。但由于这类JDBC驱动只对应一种数据库,因此访问不同的数据库需要下载专用的JDBC驱动。
以SQL Server2005为例,首先我们需要下载驱动包sqljdbc.jar,查看相关帮助文档获得驱动类名称以及数据库连接字符串。

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=Test", "sa", "sa");

JDBC常用接口

JDBC提供了众多的接口和类,通过这些接口和类,可以实现与数据库的通信。

Driver接口

每种数据库的驱动程序都提供了一个实现java.sql.Driver接口的类,简称Driver类来实现与数据库服务器的连接。在加载某一驱动程序的Driver时,应该创建自己的实例并向java.sql.DriverManager类注册该实例。
通过java.lang.Class类的静态方法forName(String className)可以加载欲连接的数据库的Driver类。成功加载后。会讲Driver类的实例注册到DriverManager类中。

DriverManager类

java.sql.DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于读者和驱动程序之间,负责跟踪可用的驱动程序,并在数据库和驱动程序之间建立连接。成功加载Driver类并在DriverManager类中注册后,DriverManager类即可用来建立数据库连接。
通过DriverManager类的getConnection()方法可以请求建立数据库连接。

Connection接口

java.sql.Connection接口代表与特定数据库的连接,在连接的上下文中可以执行SQL语句并返回结果。在默认情况下,Connection对象处于自动提交模式下,这意味着它在执行每个语句后都会自动提交更改。如果禁用自动提交,必须显示的调用commit()方法,否则无法保存。

Statement接口

java.sql.Statement接口用来执行静态SQL语句,并返回执行结果。例如对于insert、delete、update语句,调用executeUpdate(String sql)方法,而对于select语句则调用executeQuery(String sql)方法,并返回一个永远不能为null的ResultSet对象。

PreparedStatement接口

java.sql.PreparedStatement接口继承并扩展了Statement接口,用来执行动态的SQL语句,即包含参数的SQL语句,通过PreparedStatement实例执行动态SQL语句,将被编译并保存到PreparedStatement实例中,从而可以反复并高效的执行该SQL语句。

ResultSet接口

java.sql.ResultSet接口类似一个数据表,通过该接口的实例可以获得检索结果以及对应数据表的相关信息。

你可能感兴趣的:(java,数据库,jdbc)