hydrogen-dao

数据库操作工具
授权协议 Apache
开发语言 Java
所属分类 数据库相关、 数据库管理工具
软件类型 开源软件
地区 国产
投 递 者 常乐
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

(本项目终止开发,因为现在 MyBatis 配合 SpringBoot 使用已经全程免配置,其易用性已经达到作者本人的期望。)

hydrogen-dao 是一个轻量级的 JDBC 数据库操作工具,专注于简化数据库的连接管理 SQL 执行。其主要功能有:

  • 连接池管理,状态查看;

  • 跨数据库的事务;

  • 根据查询参数来动态组装 select/insert/update/delete 语句,免除大量的 if-else;

  • 简化分页查询和批处理。

下面是一个例子:

// 简单查询
List users = dao.query("select * from users where id in(?,?,?)", 1,2,3);


// 查询结果包装成 Pojo
List users = dao.query(User.class, "select * from users where id in(?,?,?)", 1,2,3);


// 动态组装条件
List users = dao.query(SQL
        .Select("ID", "NAME", "ROLE")
        .From("USERS")
        .Where(username != null, "NAME=?", username)  // 仅当变量 username 不为 null 时才会包含该查询条件
        .And(role != null, "ROLE in ?", roles)           // 这里的 roles 变量可以是数组或 List
);


// 分页查询
String sql = "select * from users where name like ?";
int pageSize = 10;  // 页大小
int pageIndex = 2;  // 页号,0 表示第一页

Page page = dao.queryPage(User.class, sql, pageSize, pageIndex, "Adm%");

System.out.println("Total count: " + page.getTotal()); // 要获取总记录数,实际上查询了两次
for (User user: page) {
    System.out.println(user);
}

hydrogen-dao 是一个 Java 的轻量级的数据库访问库,依赖标准的 JDBC 接口。下面是一个使用例子:

查询记录

DAO dao = getDAO();List userList = dao.query(
        User.class,                                         // 包装类
        "select * from USER where NAME like ? and ROLE=?",  // 语句
        "admin%", 3);                                       // 参数for (User user: userList) {
    System.out.println("user name: " + user.getName());}

执行事务

final DAO dao = getDAO();DAO.runTransactionWithException(new Runnable() {  // 所有事务都以 Runnable 的方式执行,简单明了
    public void run() {
        dao.execute("insert into USER(id,name) values(?,?)", 1, "user1");
        throw new Exception();    // 之前的 insert 将会回滚,同时异常抛出
    }});

使用方法参考 WIKI

 相关资料
  • 像对象-文档映射中那样,给实体类加上了注解,并且实现了BuguEntity接口,接下来就可以使用BuguDao类操作该实体了。 BuguDao构造函数 你需要编写自己的Dao,如FooDao,来操作Foo相关的数据。FooDao需要继承自BuguDao,并且,在FooDao的构造函数中,需要传递Foo.class,如下: public class FooDao extends BuguDao<Fo

  • 数据库的操作是每个phpweb框架的核心功能,我们提供数据库数据库的标准调用模式为: 你可以执行严格模式,也就是左边的那条线,Controller->Service->Dao->Model->DB,也可以走简单模式 Controller->Model->DB。个人根据自己的需求,走标准麻烦些(几乎所有的机构和系统都是这样^_^), 但是扩展性会好些,但是使用简单模式开发效率就会高些,性能会好些,但

  • 这一小节是对数据库操作做一个简单的封装,不涉及复杂的事务操作等。 我选用了Sql2o作为底层数据库框架作为支持,它的简洁易用性让我刮目相看,后面我们也会写如何实现一个ORM框架。 /** * 数据库支持 * @author biezhi * */ public final class MarioDb { private static Sql2o sql2o = null;

  • NoSQL(Not Only SQL),指的是非关系型的数据库。随着Web2.0的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 而Go语言作为21世纪的C语言,对NOSQL的支持也是很好,目前流行的NOSQL主要有redis、mongoD

  • 由于我们的框架目前只支持使用mysql,如果使用其他数据库,则不建议使用本框架。本节将介绍如何读取mysql数据库中的数据。 首先需要修改配置文件 App1/Config/Config.php   //默认Mysql数据库 'default_mysql_config' => 'mysql', //Mysql1数据库配置 'mysql' => array( 'host'  => 'localhost

  • phpGrace Db 概述 phpgrace db 操作类以pdo为基础、全面采用预处理机制、最大程度保证了数据操作的安全性。采用了单利模式,保证一库一连、一表一对象!为高效开发提供了基础。 大部分的数据操作都无需编写复杂的sql命令,简单配置即可。 准备工作:数据库信息配置 使用数据库操作前,请打开保证数据库配置正确!具体操作见上一节 ^_^ 数据操作详解 下文将以数据表 persons为例,