Servlet开发中JDBC的高级应用

独自等待20136

独自等待20136

2016-01-29 12:15

Servlet开发中JDBC的高级应用,Servlet开发中JDBC的高级应用
 

  连结数据库

  JDBC使用数据库URL来说明数据库驱动程序。数据库URL类似于通用的URL,但SUN 在定义时作了一点简化,其语法如下:

  Jdbc::[node]/[database]

  其中子协议(subprotocal)定义驱动程序类型,node提供网络数据库的位置和端口号,后面跟可选的参数。例如:

String url=”jdbc:inetdae:myserver:1433?language=us-english&sql7=true” 

  表示采用inetdae驱动程序连接1433端口上的myserver数据库服务器,选择语言为美国英语,数据库的版本是mssql server 7.0。

  java应用通过指定DriverManager装入一个驱动程序类。语法如下:

Class.forName(“”);

  或  

Class.forName(“”).newInstance(); 

  然后,DriverManager创建一个特定的连接:

Connection connection=DriverManager.getConnection(url,login,password); 

  Connection接口通过指定数据库位置,登录名和密码连接数据库。Connection接口创建一个Statement实例执行需要的查询:

Statement stmt=connection.createStatement(); 

  Statement具有各种方法(API),如executeQuery,execute等可以返回查询的结果集。结果集是一个ResultSet对象。具体的可以通过jdbc开发文档查看。可以sun的站点上下载

  下面例子来说明:

import java.sql.*; // 输入JDBC package

String url = "jdbc:inetdae:myserver:1433";// 主机名和端口
String login = "user";// 登录名
String password = "";// 密码

try {
  DriverManager.setLogStream(System.out); file://为显示一些的信息打开一个流
  file://调用驱动程序,其名字为com.inet.tds.TdsDriver
  file://Class.forName("com.inet.tds.TdsDriver");
  file://设置超时
  DriverManager.setLoginTimeout(10);
  file://打开一个连接
  Connection connection = DriverManager.getConnection(url,login,password);
  file://得到数据库驱动程序版本

   DatabaseMetaData conMD = connection.getMetaData();
   System.out.println("Driver Name:t" + conMD.getDriverName());
   System.out.println("Driver Version:t" + conMD.getDriverVersion());

  file://选择数据库
  connection.setCatalog( "MyDatabase");

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/java/)

  file://创建Statement

  Statement st = connection.createStatement();

  file://执行查询

  ResultSet rs = st.executeQuery("SELECT * FROM mytable");

  file://取得结果,输出到屏幕

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/java/)

  while (rs.next()){
     for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){
      System.out.print( rs.getObject(j)+"t");
     }
   System.out.println();
  }

  file://关闭对象
  st.close();
    connection.close();
  } catch(Exception e) {
    e.printStackTrace();
  } 
  建立连结池

  一个动态的网站频繁地从数据库中取得数据来构成html页面。每一次请求一个页面都会发生数据库操作。但连接数据库却是一个需要消耗大量时间的工作,因为请求连接需要建立通讯,分配资源,进行权限认证。这些工作很少能在一两秒内完成。所以,建立一个连接,然后再后续的查询中都使用此连接会大大地提高性能。因为servlet可以在不同的请求间保持状态,因此采用数据库连接池是一个直接的解决方案。

  Servlet在服务器的进程空间中驻留,可以方便而持久地维护数据库连接。接下来,我们介绍一个完整的连接池的实现。在实现中,有一个连接池管理器管理连接池对象,其中每一个连接池保持一组数据库连接对象,这些对象可为任何servlet所使用。

  一、数据库连接池类 DBConnectionPool,提供如下的方法:

  1、从池中取得一个打开的连接;

  2、将一个连接返回池中;

  3、在关闭时释放所有的资源,并关闭所有的连接。

  另外,DBConnectionPool还处理连接失败,比如超时,通讯失败等错误,并且根据预定义的参数限制池中的连接数。

  二、管理者类,DBConnetionManager,是一个容器将连接池封装在内,并管理所有的连接池。它的方法有:

  1、 调用和注册所有的jdbc驱动程序;

  2、 根据参数表创建DBConnectionPool对象;

  3、 映射连接池的名字和DBConnectionPool实例;

  4、 当所有的连接客户退出后,关闭全部连接池。

  这些类的实现,以及如何在servlet中使用连接池的应用在随后的文章中讲解

  DBConnectionPool类代表一个由url标识的数据库连接池。前面,我们已经提到,jdbc的url

展开更多 50%)
分享

猜你喜欢

Servlet开发中JDBC的高级应用

Java JAVA基础
Servlet开发中JDBC的高级应用

高级:使用异步Servlet扩展AJAX应用程序

编程语言 网络编程
高级:使用异步Servlet扩展AJAX应用程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JDBC 2.0中的高级数据类型

Java JAVA基础
JDBC 2.0中的高级数据类型

认识JDBC 2.0中的高级数据类型

编程语言 网络编程
认识JDBC 2.0中的高级数据类型

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

浅析数据源在JDBC中的应用

编程语言 网络编程
浅析数据源在JDBC中的应用

Delphi中ScriptControl的高级应用(二)

编程语言 网络编程
Delphi中ScriptControl的高级应用(二)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

一种随机抽题的简单算法

一种随机抽题的简单算法

全文信息检索介绍及算法分析

全文信息检索介绍及算法分析
下拉加载更多内容 ↓