QuickDAO4

QuickDAO是一个简单易用方便的Java ORM框架.具有以下优势:

  • 所有对数据库的操作只需要注入一个DAO对象即可完成
  • 自动建表,自动新增数据库字段
  • API层面支持外键关联查询,支持复杂的外键关联查询
  • 内置数据库方言支持
  • 实体类注解,支持自定义字段名称,类型,是否建立索引,是否建立外键关联等等

支持数据库

  • MySQL(5.0以上)
  • SQLite
  • H2
  • Postgre(9.0.0以上)
  • SQL Server(2012版本以上)

快速入门

1 导入QuickDAO

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

  • 导入commons-dbcp(或者其他的DataSource实现)
  • 导入QuickDAO最新版本

    1. <dependency>
    2. <groupId>commons-dbcp</groupId>
    3. <artifactId>commons-dbcp</artifactId>
    4. <version>1.4</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>cn.schoolwow</groupId>
    8. <artifactId>QuickDAO</artifactId>
    9. <version>4.0</version>
    10. </dependency>

2 配置QuickDAO

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

3使用QuickDAO

  1. //根据id查询
  2. User user1 = dao.fetch(User.class,1);
  3. //根据单个属性查询
  4. User user2 = dao.fetch(User.class,"username","quickdao");
  5. //查询对象
  6. dao.insert(user);
  7. //更新对象(根据唯一性约束和id更新)
  8. dao.update(user);
  9. //保存对象(先判断数据库里是否存在,存在则更新,不存在则插入,是否存在根据唯一性约束和id判断)
  10. dao.save(user);
  11. //根据id删除
  12. dao.delete(User.class,1);
  13. //根据单个属性删除
  14. dao.delete(User.class,"username","quickdao");
  15. //复杂查询条件
  16. List<User> userList = dao.query(User.class)
  17. .addQuery("name","quickdao")
  18. .addNotNullQuery("password")
  19. .page(1,10)
  20. .orderBy("id")
  21. .execute()
  22. .getList();
  23. //关联查询
  24. List<User> userList2 = dao.query(User.class)
  25. .joinTable(Address.class,"addressId","id")
  26. .addQuery("name","BeiJing")
  27. .done()
  28. .addQuery("name","quickdao")
  29. .page(1,10)
  30. .orderBy("id")
  31. .compositField()
  32. .execute()
  33. .getList();
  34. //更多API使用方法请参考使用文档

反馈

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

开源协议

本软件使用 GPL 开源协议!