QuickDAO 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
QuickDAO 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
QuickDAO 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
QuickDAO 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
QuickDAO 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 GPL
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 648823596
适用人群 未知
收录时间 2019-05-30

软件简介

QuickDAO

QuickDAO 是一款简单,易用,轻量级的java ORM框架.目前支持 Mysql, SQlite 以及 H2 数据库.

SpringBoot环境下由于类加载器问题请慎用,可能会导致未知问题出现!

QuickDAO目前没有在高并发环境下实践过,因此对于高并发项目请慎用.本项目适合于中小项目使用,提供封装良好的API与数据库进行交互,减少样板代码,尽可能提高开发效率!

目前QuickDAO使用Logback日志框架,DEBUG级别下会输入执行的SQL语句!

快速入门

1 建立实体类

//用户类
public class User {
    private long id;
    private String username;
    private String password;
//用户设置表
public class UserSetting {
    private long id;
    private long userId;
    private String setting;
    private User user;
//用户关注表
public class UserFollow {
    private long id;
    private long userId;
    private long followerId;
    private User user;
    private User followUser;

2 导入QuickDAO

QuickDAO基于JDBC,为提高效率,默认只支持数据库连接池.

  • 导入commons-dbcp(或者其他的DataSource实现) <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>

2.1 使用maven

<dependency>
  <groupId>cn.schoolwow</groupId>
  <artifactId>QuickDAO</artifactId>
  <version>2.4</version>
</dependency>

3 使用QuickDAO

QuickDAO支持自动建表,自动新增字段功能.当您在Java代码中配置好QuickDAO后无需再对数据库做任何操作.

BasicDataSource mysqlDataSource = new BasicDataSource();
mysqlDataSource.setDriverClassName("com.mysql.jdbc.Driver");
mysqlDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/quickdao");
mysqlDataSource.setUsername("root");
mysqlDataSource.setPassword("123456");
//指定���体所在包名
cn.schoolwow.quickdao.dao.DAO dao = QuickDAO.newInstance()
                    .dataSource(mysqlDataSource)
                    .packageName("cn.schoolwow.quickdao.entity")
                    .build();
//之后所有的操作使用dao对象完成

3.1 简单查询与更新操作

//根据id查询
User user = dao.fetch(User.class,1);
//根据属性查询
User user = dao.fetch(User.class,"username","quickdao");
List<User> user = dao.fetchList(User.class,"password","123456");
//保存用户
dao.save(user);
dao.save(userList);
//删除用户
dao.delete(User.class,1);
dao.delete(User.class,"username","quickdao");

3.2 复杂查询

List<User> userList = dao.query(User.class)
   .addNotEmptyQuery("username")
   .getList();

关于复杂查询详细信息请点此查看

3.3 外键查询

List<User> userList = dao.query(User.class)
   .join(UserSetting.class,"id","userId")
   .addNotEmptyQuery("setting")
   .done()
   .getList();

关于外键查询详细信息请点此查看

3.3 分页排序查询

List<User> userList = dao.query(User.class)
   .pageNumber(1,10)
   .orderByDesc("id")
   .getList();

关于分页排序详细信息请点此查看

3.4 建表删表

//删除User表
dao.drop(User.class);
//建立User表
dao.create(User.class);

详细手册

  • 实体注解 QuickDAO有自动建表功能,用户可使用注解为实体类信息添加相关字段信息.同时QuickDAO能够自动匹配实体类和数据库表,自动添加新增的实体类字段信息.

  • 配置信息 QuickDAO可配置是否自动新建表,是否建立外键约束,忽略表和包等等.

  • 事务功能 QuickDAO基于JDBC封装了简单的事务功能.若需使用事务,请查询此手册

请注意: 开启事务时只作用于调用方法的dao对象,若配置有多个dao对象,对其他dao对象无影响(也即其他dao对象不会跟着开启事务功能)!

QuickDAO本身提供了一套较完整的JUnit测试用例,可查看ConditionTestDAOTest.

反馈

目前QuickDAO还不成熟,还在不断完善中.若有问题请提交Issue,作者将第一时间跟进并努力解决.同时欢迎热心认识提交PR,共同完善QuickDAO项目!

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
发表了资讯
08/04 11:57

QuickDAO 4.1.8 版本发布,实现 Oracle 分页操作以及大量细节优化

QuickDAO4.1.8版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: 友情提示:每次更新版本时通常在线文档也会同步更新.请注意查看文档页面时清空缓存,以便获取最新文档 [新增]Oracle分页操作支持,由于oracle分页的特殊性,调用分页方法后只能调用execute方法 [新增]DAOUtil工具类,支持同步两个数据库的表结构,支持数据库数据迁移 [新增]插入时和更新时设置字段值,例如数据库表需要设置插入或者更新记...

0
3
发表了资讯
06/23 10:20

QuickDAO 4.1.7 版本发布,适配 Oracle 数据库以及新增 DCL 操作!

QuickDAO4.1.7版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: [新增]Oracle数据库支持,支持11g及以上版本.由于Oracle分页功能较复杂,目前暂未实现Oracle数据库的分页API操作 [新增]DCL操作,用户可通过QuickDAO进行创建数据库用户,授权,取消授权等相关操作. [修复]解决postgre低版本获取自增id时报异常的问题 [优化]id生成器返回值改为String类型,可更灵活的生成id生成值 QuickDAO是一款简单易用...

0
1
发表了资讯
05/17 10:33

QuickDAO 4.1.6 版本发布,新增 mariaDB 支持和完善适配 SQL Server

QuickDAO4.1.6版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: [新增]MariaDB数据库支持,可使用org.mariadb.jdbc.Driver驱动类和识别jdbc:mariadb://127.0.0.1:3306/quickdao [优化]完善适配了SQLServer数据库支持,之前的版本对SQL Server数据库的适配不够完善 [优化]SQL日志打印,之前的SQL日志打印会出现SQL语句漏打印的情况,本次版本更新会打印所有实际执行的SQL语句,方便调试 QuickDAO...

0
1
发表了资讯
04/21 14:46

QuickDAO 4.1.5 版本发布,实现数据源迁移功能

QuickDAO4.1.5版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: [新增]数据源迁移功能,可将数据记录从一个数据源迁移到另外一个数据源,支持跨数据源迁移(例如从SQLite迁移到MySQL) [新增]添加addColumnExclude方法,用于返回部分字段,但该方法仅可调用一次 [修复]子查询生成查询语句时未添加上分页和排序信息 [修复]手动新增索引时,using字段前未添加using字符串问题 [优化]取消使用MDC保存...

1
9
发表了资讯
03/05 17:37

QuickDAO 4.1.4 版本发布,新增 lambda 表达式支持,多项细节优化

QuickDAO4.1.4版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: [新增]Lambda表达式支持,具体用法文档请参阅最新文档 [优化]之前版本的表别名设置存在问题,在调用子查询方法时默认别名都为t导致SQL语句生成错误,本次更新在调用子查询相关方法时都会自动添加相应表别名。 [优化]addColumn方法会智能判断是否需要添加表别名前缀,之前版本默认不会添加,连表查询时容易出现ambiguous错误 [优化]本次更...

0
7
发表于数据库专区
03/01 09:16

QuickDAO4.1.3 发布,优化全局类型转换和新增多字段关联

QuickDAO4.1.3版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: [新增]SubCondition新增on方法,支持多字段关联.例如 from A join table B on A.id = B.id and A.id2 = B.id2 (之前版本只支持单个字段关联) [新增]全局类型转换功能,可在配置时手动指定全局的列类型转换函数 [修复]类型转换功能对虚拟查询不起作用问题 根据开发者反馈,下个版本计划新增lamda表达式支持,可在调用查询条件API时使...

0
0
发表于数据库专区
02/23 15:23

QuickDAO 4.1.2 发布,索引相关功能增强

QuickDAO4.1.2版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: [新增]@CompositeIndex注解,支持在表上建立组合索引 [新增]@UniqueField注解,标识哪些字段作为判断实例是否唯一 [新增]支持指定返回列类型,可通过columnTypeMapping方法指定要返回的列的类型 [优化]@Index注解现在支持制定索引类型,索引名称,索引方法等等功能 [优化]SQLite数据库支持LocalDate和LocalDateTime类型 QuickDAO是一款简...

0
2
发表于数据库专区
2020/12/28 17:55

QuickDAO 4.0 发布,Java ORM 框架

QuickDAO4.0版本正式发布。相比于3.0版本,架构上重新设计,代码结构更清晰,对外接口变化不大。如果您是3.0版本的用户,可以在QuickDAO3.0的仓库首页上看到迁移教程。 QuickDAO4 QuickDAO是一个简单易用方便的Java ORM框架.具有以下优势: 只需要注入一个DAO即可完成初始化操作 自动建表,自动新增数据库字段 API层面支持外键关联查询,支持复杂的外键关联查询 内置数据库方言支持 实体类注解,支持自定义字段名称,类型,是否建立索...

0
9
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
暂无内容
0 评论
19 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部