首页 > 编程 > Java > 正文

rapid-db-conn: 用于快速开发的数据库连接类库(Java)

2019-11-08 02:25:47
字体:
来源:转载
供稿:网友

1. 简单介绍

大多数java程序员的主要工作重心基本上都在Web开发上,而在Web端,已经有了与各大框架集成的数据库连接池,只要简单配置即可在程序中使用。但是也有一部分Java程序员从Web端转向了大数据方面的工作。很多时候如果将数据导入数据库,然后在该数据库中进行一系列的分析,那么就不可避免的需要从头写一个用于数据库连接的类。作为程序员,“懒惰”是一个很好的习惯,即一次开发,到处运行,为了提高开发效率,我们都希望这次写的代码在下次能够继续使用。出于这样的目的,我在GitHub上开源了一个用于快速开发数据库操作的库:rapid-db-conn,该库使用xml作为配置文件,在数据库配置改变的情况下只需要修改xml文件即可,支持MySQLOracle,SQL Server,PostgreSQL这四个主流的数据库,并且封装了常用的增删改查,只要传入SQL语句及相关参数即可调用相应的方法(需要注意的是,此库未加入连接池的功能,故只适合于快速开发,而不适用于Web环境)。rapid-db-conn的GitHub地址为:rapid-db-conn 打包好的jar包的下载地址:rapid-db-conn-v1.0.rar 下载后解压即可。

2.使用方法

2.1前期准备

(1)dom4j的jar包(用于xml的解析)

(2)使用的数据库的Java驱动

(3)准备config.xml,并将其放置在工程的根目录下(config.xml的模板参见:config.xml)

(4)把rapid-db-conn-v1.0.jar引入工程

2.2获取数据库连接

/** * 如果没有引入正确的数据库驱动,或者配置出错,此构造函数会抛出 ClassNotFoundException 或者 SQLException */Connector connector = new TelaConnector();2.3插入数据

/** * 普通版本 */boolean isInserted = connector.insert(String sql); // assume connector is a Connector object/** * 带参数的版本(即内部使用PReparedStatement实现参数的定向绑定) */boolean isInserted = connector.insert(String sql, Object[] args); // recommanded2.4删除数据

/** * 普通版本 */boolean isDeleted = connector.delete(String sql); // assume connector is a Connector object/** * 带参数的版本 */boolean isDeleted = connector.delete(String sql, Object[] args); // recommanded

2.4更新数据

/** * 普通版本 */boolean isUpdated = connector.update(String sql); // assume connector is a Connector object/** * 带参数的版本 */boolean isUpdated = connector.update(String sql, Object[] args); // recommanded2.5查询数据

/** * 普通版本 */ResultSet set = connector.select(String sql); // assume connector is a Connector object/** * 带参数的版本 */ResultSet set = connector.select(String sql, Object[] args); // recommanded3.注意事项

客户端无需关心关闭数据库操作过程中产生的Statement对象的问题,Connector提供了close()方法,只需要在finally程序块中调用close()方法即可关闭所有的Statement对象和数据库连接

Connector connector = null;try {    connector = new TelaConnector();    /**     * 此处为各种操作     */} catch (ClassNotFoundException e) {    e.printStackTrace();} catch (SQLException e) {    e.printStackTrace();} finally {    if (connector != null) {      connector.close();     }}

当然,如果程序中使用了ResultSet对象,那么在调用Connector的close()方法之前应该先关闭ResultSet对象,Connector不负责关闭ResultSet对象。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表