服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java技巧:简化jdbc的开发


  使用jdbc时经常要处理大量的重复代码和捕获无尽的的sqlexception 。 把这些复杂、重复的处理提取出来,放到一个可以重用的jdbc工具类是非常值得尝试的。
  
  
  util类包含了可以辅助某一个领域开发的大量的静态方法。所以,stringutil类会包含一个capitalize方法,streamutil类可能包含pushstream方法,用于从一个输入流中读起并写入到输出流中。
  
  在创建这样一组标准工具类时需要做两个决策。第一,你必须确定哪些功能是需要的;第二,你必须确定需要做什么种类的日志。
  
  第二个决定更加困难些,要围绕像util类是否需要使用system.err,是否抛出新的例外,是否隐藏错误,或者使用诸如log4j这样的日志工具。随着jdk1.4的发布,我们都可以使用java.log包,所以回答这个问题更加容易了。
  
  对于下面的例子,我们把错误输出到system.err。
  
  jdbc util的一个有用的功能是ensureloaded方法。在编写jdbc代码时,确保在sql调用之前,特定的驱动器装载到内存中是一个很常用的需求。这可以通过调用jdbcutil.ensureloaded(string drivername)完美的解决。
  
  注意jdbc util类命名为jdbcutil是根据sun的java代码标准的要求,在类名中,首字母的缩写词仅取第一个字母大写。jdbcutil.ensureloaded的代码类似:
  
  static public boolean ensureloaded(string name) {
   try {
   class.forname(name).newinstance( );
   return true;
   } catch(classnotfoundexception cnfe) {
   cnfe.printstacktrace( );
   return false;
   } catch(illegalaccessexception iae) {
   iae.printstacktrace( );
   return false;
   } catch(instantiationexception ie) {
   ie.printstacktrace( );
   return false;
   }
  }
  对于oracle,jdbcutil.ensureloaded将调用:
  
  jdbcutil.ensureloaded("oracle.jdbc.driver.oracledriver");
  
  其它通用的功能还包括将resultset转为一个对象数组,从resultset中得到列名,得到一个特定列的类型,或者得到一个表的主键名。
  
  一组通用的util类可以极大地增强开发过程;然而,要记住,最重要的是不要把所有的操作都放入util.java中。

扫描关注微信公众号