Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16495309
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:40:31

下载本文示例代码
天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   前言  学习JDBC以来一直想实现一个简单的封装来方便编程但是由于水平有限一直没有较好的办法,看了IBM开发网上的两篇文章以后感觉作者的设计思想很好一定能扩充成一个实用的JDBC封装。所以我在文章提供的源码基础上加了一些功能这些功能包括支持多种数据类型,处理了空值,利用反射方便的在Row对象和值对象之间进行转换,还有加了一个我自认为通用的DAO类来方便用户的操作。  我把源码提供出来有两个目的一个是希望能帮助比我还初学的初学者熟悉JDBC,另外就是请各位高手不吝赐教,改进程序中的错误如果能将你们的对JDBC的封装方法提供出来那就更好了(不要说你们只用EJB或者Hibernate,JDO什么的?)。  设计思想   把DBMS抽象成类Database,这个类负责管理数据库连接以及提供表对象。   把数据库中的一张或多张表抽象成类Table,这个类中提供对表的添加,修改,删除的JDBC封装。   将数据库表中的一条记录抽象成类Row,这个类用HashMap保存关系数据库中表格中一行数据的字段名和值并提供一些相关操作。另外这个类还提供了两个静态方法用于在Row对象和ValueObject之间进行方便的转换。   把对个Row的集合抽象成RowSet,这个类中用一个vector把多个Row对象保存起来并提供一些相关操作。  代码分析  由于已经给出源码所以我只对代码中关键的和需要注意的地方加以说明,大家可以执行源码一边演示一边体会。   Database类源码如下: package com.gdrj.util.database;import java.sql.*;import javax.sql.*;import com.gdrj.util.servicelocator.*;public class Database { /**  * 这个数据库连接成员只有在与数据库直接建立连接的情况下是有效的 */  private Connection conn = null;  /** * 当这个参数有效时,表明程序是直接与数据库建立的连接而不是从连接池里取得连接  */ private String url, user, password; /** * 当这个参数有效时,表明程序是从连接池里取得连接。 */  private String datasource; /** * 用数据库地址,用户名,密码初始化数据库对象,这个构造器用于程序是直接  * 与数据库建立连接的情况。  * @param url * @param user  * @param password */ public Database(String url, String user, String password)  {  this.url = url;   this.user = user;  this.password = password;  } /** * 用JNDI数据源名初始化数据库对象,这个构造器用于从连接池取数据库连接的情况。  * @param datasource */  public Database(String datasource) {  this.datasource = datasource; } /** * 得到数据库连接,对于是否从连接池里取连接做了自动处理即根据用户调用了哪个构造器  * 来判断是否直接与数据库建立连接还是从连接池里取连接。  * 对于用户来说不用考虑程序是从那里取得连接,他只管正确的初始化数据库对象。  * @return * @throws SQLException  */ public Connection getConnection() throws Exception {  if (datasource == null)   {   //直接与数据库建立连接    if (conn == null)   {    conn = DriverManager.getConnection(url, user, password);   }  }  else   {   //从应用服务器的连接池里取得连接    ServiceLocator sl = ServiceLocator.getInstance();   DataSource ds = sl.getDataSource(datasource);   return ds.getConnection();   //每调用一次都返回一个连接池中的数据库连接   }  return conn; } /** * 释放连接,如果是直接与数据库连接的情况则什么也不做  * 如果是从连接池中取得的连接那么释放传来的连接  * @param conn  */ public void disConnect(Connection connection)  {  if (datasource != null)  {   //只处理从连接池取连接的情况    try   {    if (connection != null)    {     connection.close();    }   }   catch (Exception ex) {}   } } /** * 得到与参数名对应的表对象,注意这里不作任何数据库操作  * @param name  * @return */ public Table getTable(String name) {  return new Table(this, name); }}  这个类是对DBMS的抽象,所以使用时应用程序中只要有一个Database对象就够了,如果你是以与数据库之间建立连接的方式使用那么你用Database(String url, String user, String password)构造器进行初始化。如果是从应用服务器的连接池中取得连接的方式使用那么用Database(String datasource)构造器初始化,这样以后你使用这个对象进行getConnection和disConnection时就不用去考虑始终保持一个连接(C/S方式),还是将连接返回连接池了因为在disConnection中已经做了处理。集体使用方法将Table类。在getConnection中的从连接池中取连接的代码你只要参考以下《J2EE核心模式》中的服务定位器模式就知道是怎么回事了,你在用Database(String url, String user, String password)初始化时其中的代码不起作用。共4页。 1 2 3 4 : 天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   前言  学习JDBC以来一直想实现一个简单的封装来方便编程但是由于水平有限一直没有较好的办法,看了IBM开发网上的两篇文章以后感觉作者的设计思想很好一定能扩充成一个实用的JDBC封装。所以我在文章提供的源码基础上加了一些功能这些功能包括支持多种数据类型,处理了空值,利用反射方便的在Row对象和值对象之间进行转换,还有加了一个我自认为通用的DAO类来方便用户的操作。  我把源码提供出来有两个目的一个是希望能帮助比我还初学的初学者熟悉JDBC,另外就是请各位高手不吝赐教,改进程序中的错误如果能将你们的对JDBC的封装方法提供出来那就更好了(不要说你们只用EJB或者Hibernate,JDO什么的?)。  设计思想   把DBMS抽象成类Database,这个类负责管理数据库连接以及提供表对象。   把数据库中的一张或多张表抽象成类Table,这个类中提供对表的添加,修改,删除的JDBC封装。   将数据库表中的一条记录抽象成类Row,这个类用HashMap保存关系数据库中表格中一行数据的字段名和值并提供一些相关操作。另外这个类还提供了两个静态方法用于在Row对象和ValueObject之间进行方便的转换。   把对个Row的集合抽象成RowSet,这个类中用一个vector把多个Row对象保存起来并提供一些相关操作。  代码分析  由于已经给出源码所以我只对代码中关键的和需要注意的地方加以说明,大家可以执行源码一边演示一边体会。   Database类源码如下: package com.gdrj.util.database;import java.sql.*;import javax.sql.*;import com.gdrj.util.servicelocator.*;public class Database { /**  * 这个数据库连接成员只有在与数据库直接建立连接的情况下是有效的 */  private Connection conn = null;  /** * 当这个参数有效时,表明程序是直接与数据库建立的连接而不是从连接池里取得连接  */ private String url, user, password; /** * 当这个参数有效时,表明程序是从连接池里取得连接。 */  private String datasource; /** * 用数据库地址,用户名,密码初始化数据库对象,这个构造器用于程序是直接  * 与数据库建立连接的情况。  * @param url * @param user  * @param password */ public Database(String url, String user, String password)  {  this.url = url;   this.user = user;  this.password = password;  } /** * 用JNDI数据源名初始化数据库对象,这个构造器用于从连接池取数据库连接的情况。  * @param datasource */  public Database(String datasource) {  this.datasource = datasource; } /** * 得到数据库连接,对于是否从连接池里取连接做了自动处理即根据用户调用了哪个构造器  * 来判断是否直接与数据库建立连接还是从连接池里取连接。  * 对于用户来说不用考虑程序是从那里取得连接,他只管正确的初始化数据库对象。  * @return * @throws SQLException  */ public Connection getConnection() throws Exception {  if (datasource == null)   {   //直接与数据库建立连接    if (conn == null)   {    conn = DriverManager.getConnection(url, user, password);   }  }  else   {   //从应用服务器的连接池里取得连接    ServiceLocator sl = ServiceLocator.getInstance();   DataSource ds = sl.getDataSource(datasource);   return ds.getConnection();   //每调用一次都返回一个连接池中的数据库连接   }  return conn; } /** * 释放连接,如果是直接与数据库连接的情况则什么也不做  * 如果是从连接池中取得的连接那么释放传来的连接  * @param conn  */ public void disConnect(Connection connection)  {  if (datasource != null)  {   //只处理从连接池取连接的情况    try   {    if (connection != null)    {     connection.close();    }   }   catch (Exception ex) {}   } } /** * 得到与参数名对应的表对象,注意这里不作任何数据库操作  * @param name  * @return */ public Table getTable(String name) {  return new Table(this, name); }}  这个类是对DBMS的抽象,所以使用时应用程序中只要有一个Database对象就够了,如果你是以与数据库之间建立连接的方式使用那么你用Database(String url, String user, String password)构造器进行初始化。如果是从应用服务器的连接池中取得连接的方式使用那么用Database(String datasource)构造器初始化,这样以后你使用这个对象进行getConnection和disConnection时就不用去考虑始终保持一个连接(C/S方式),还是将连接返回连接池了因为在disConnection中已经做了处理。集体使用方法将Table类。在getConnection中的从连接池中取连接的代码你只要参考以下《J2EE核心模式》中的服务定位器模式就知道是怎么回事了,你在用Database(String url, String user, String password)初始化时其中的代码不起作用。共4页。 1 2 3 4 : 下载本文示例代码


一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架一个简单实用的数据库操作框架
阅读(167) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~