# BoomDataSource **Repository Path**: NiceSoneC/BoomDataSource ## Basic Information - **Project Name**: BoomDataSource - **Description**: 数据库连接执行池 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-05-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MDBPoolExcutor ## 简介 MDBPoolExcutor 是基于 Java 语言的 一种数据库执行池。我们知道,数据库连接是一个非常昂贵的资源,申请一个链接开销比较大,所以需要一个"池"来进行统一管理,从而实现数据库链接的重复利用,节约资源。同时一个新的数据库操作要执行时,相应速度也会更快。 #### 框架特点 1. 处了提供数据库连接管理功能,还提供直接执行的功能。 2. 获取任务结果的方式有三种 * 使用`Future设计模式`,异步执行任务,返回Future * `阻塞方式`,使用Future的get方法,阻塞到有结果 * `回调方式`,自定义回调执行函数,当获取到结果时调用 3. 容易上手使用 ## 使用流程 ### 导入依赖 ``` java org.mao dbpool 1.0.0 ``` ### 基本使用步骤 #### 1.创建DBPoolExecutor ##### 参数说明 名称|类型|描述|必选 ---|---|---|--- JDBC_DRIVER|String|使用的数据库连接引擎|√ DB_URL|String|数据库连接串|√ USER_NAME|String|数据库用户名|√ PASSWORD|String|数据库密码|√ PASSWORD|String|数据库密码|√ coreCount|int|核心数据库连接个数|× maxCount|int|最大数据库连接个数|× ``` java // 先得到一个DBPoolExecutor构造器,配置好参数 DBPoolExecutorBuilder builder = DBPoolExecutor.getBuilder(JDBC_DRIVER, DB_URL, USER_NAME, PASSWORD); // 构建一个DBPoolExecutor DBPoolExecutor executor = builder.build(); ``` #### 2.使用DBPoolExecutor ##### 查询 ``` java /* * 基本的异步查询 * @param sql 查询语句 * @return DBFuture> 结果Future包装实例 */ public DBFuture> query(String sql); /* * 异步查询结果,注册一个回调函数,当查询完成时,触发回调函数 * @param sql 查询语句 * @return DBFuture> 结果Future包装实例 */ public DBFuture> query(String sql,DBCallback> callback); ``` ##### 更新 ``` java /* * 基本的异步更新 * @param sql 更新语句,insert或update * @return DBFuture 结果Future包装实例,结果为影响的行数 */ public DBFuture update(String sql); /* * 带回调函数的异步更新,当更新后,触发回调函数 * @param sql 更新语句,insert或update * @return DBFuture 结果Future包装实例,结果为影响的行数 */ public DBFuture update(String sql,DBCallback callback); ``` ### 拓展功能 #### Record 一个Record实例代表数据库表中的一条记录。可以方便的获取每个字段的值,不需要添加额外的getter/setter方法 ##### 常用方法 ``` java // 获取所有字段的集合 public Set colunmSet(); // 获取一个字段的值 public Object get(String key); // 设置一个字段的值,可以链式的设置 public Record put(String key,Object val); // 移除一个字段 public Record remove(String key); // 返回一个Map副本,里面包含所有的字段+值 public Map getMap(); ``` #### DBUtil DBUtil是DBPoolExecutor的加强类,除了有DBPoolExecutor的全部功能以外,还有自己的许多方便功能 常和Record联合使用 ##### 常用方法 ``` java // 在数据库表中添加一条记录,需要指定表名 public boolean save(Record record,String tableName); // 按照主键修改数据库表的一条记录,需要指定表名和主键 public boolean update(Record record,String tableName,String pk); // 按照id修改数据库表的一条记录,需要指定表名 public boolean update(Record record,String tableName); // 按照主键查找到数据表中的一条记录,需要指定表名,主键名,主键值 public Record queryByKP(String tableName,String pk,Object val); // 按照id查找到数据表中的一条记录,需要指定表名,主键值 public Record queryByKP(String tableName,Object val); ``` ### 还有更多好玩的东西可以去源码中找哦