Java程序与数据库的连接

来源:互联网 发布:网络整合营销理论 编辑:程序博客网 时间:2024/06/13 08:16


 1.连接(Connection):

     客户端 Java 应用程序与数据库服务器之间的通信连接,在应用程序的代码中使用数据库之前,必须获取一个数据库连接。通常由 JDBC 建立,连接是通过 java.sql.Connection 接口实现。创建一个连接后,可以调用它的方法获得和设置连接、管理事务和创建语句对象等。

2.数据源(DataSource) :

    DataSource 接口是在 JDBC 3.0 的规范中定义的另外一种获取数据源连接的方法。

    使用 DataSource 进行数据库连接可以提高应用程序的可移植性,因为应用程序使用一个逻辑名称建立与数据库的连接,该逻辑名通过使用 JNDI(Java Naming and Directory Interface) 命名服务映射到真正的 DataSource 对象,该 DataSource 对象表示了一个真正的数据库连接。如果数据源的信息发生变化,只需修改该 DataSource 对象的属性,而不需要修改应用程序。

     DataSource 对象是推荐使用的方法,它使得应用程序更容易移植和维护,而且应用程序可以透明地使用连接池和分布事务的功能。J2EE 组件多通过 DataSource 对象与数据源建立连接的。

     DataSource 接口的实现可以提供连接池的功能,也可以不提供。在基本的 DataSource 接口的实现中,客户的连接对象与物理的数据库连接是一对一的关系,当连接对象关闭的时候,物理的数据库连接也要关闭,因此,每个客户连接都要打开、初始化和关闭一次物理的数据库连接,这显然降低系统的性能。连接池则维护了一组物理的数据库连接,在客户间重用来提高性能和可扩展性。

 3.语句对象:

    连接一旦建立,就可向数据库传送 SQL 语句,而且对可被发送的 SQL 语句类型不加任何限制,它允许使用特定的数据库语句。

     JDBC 提供了三个类,用于向数据库发送 SQL 语句,Connection 接口中的三个方法可用于创建这些类的实例:

     1.Statement 对象:由方法 createStatement 所创建,用于发送简单的 SQL 语句,来进行查询或对数据库进行更新。 Statement 对象提供三种方法执行 SQL 语句:

         execute 方法用于执行返回多个结果集或更新多个元组的 SQL 语句;

         executeQuery 方法用于执行返回单个结果集的 SQL 语句;

         executeUpdate 方法用于执行含有 INSERT、UPDATE 或 DELETE 语句或者不返回任何内容的 SQL 语句,如 DDL 语句。

     2.PreparedStatement 对象:由方法 prepareStatement 所创建,用于发送带有一个或多个输入参数(IN 参数)的 SQL 语句。

       数据库服务器在处理 SQL 语句时都是首先生成该语句的执行计划,然后执行。对于有些应用需要反复处理具有相同执行计划的语句,就会浪费处理资源,这时就可以使用 PreparedStatement 对象,这样,数据库服务器可以提前取得 SQL 语句,并为它创建查询计划,以后该语句就可以多次执行。

       PreparedStatement 对象由方法 prepareStatement 所创建,用于发送带有一个或多个输入参数(IN 参数)的 SQL 语句。

       PreparedStatement 对象具有一组 setXXX()方法,用于设置 IN 参数的值。执行语句时,这些 IN 参数将被送到数据库中。

       处理一个带参数的 SQL 语句通常包括以下过程

  1. 生成一个 PreparedStatement 对象,对语句进行预编译。

  2. 设置参数。

  3. 执行语句,获取结果。

    3.CallableStatement 对象:由方法 prepareCall 所创建,用于执行 SQL 存储过程。

    CallableStatement 对象从 PreparedStatement 中继承了用于处理 IN 参数的方法,而且还增加了用于处理 OUT 参数和 INOUT 参数的方法。

     CallableStatemen 对象由方法 prepareCall 所创建,用于发送带有一个或多个输入参数(IN 参数)和输出参数(OUT 参数)或输入输出参数(INOUT 参数)的 SQL 语句。

    CallableStatement 对象继承了 PreparedStatement 的 setXXX()方法,用于设置 IN 参数的值。在执行语句前必须用 CallableStatement 的特有方法 registerOutParameter()对 OUT/INOUT 参数进行注册,语句执行之后,可以用 getXXX()方法获取参数值。

    处理一个存储过程的 SQL 语句通常包括以下过程:

  1. 生成一个 CallableStatement 对象,对语句进行预编译。

  2. 提取参数信息。

  3. 设置参数。

  4. 注册输出参数。

  5. 执行语句。

  6. 获取输出参数的返回值。







0 0
原创粉丝点击