配置DAO对象

QuickDAO通过配置信息生成DAO对象以便对数据库进行操作.用户可根据实际需求设置相应配置信息

配置DAO对象

  1. //QuickDAO需要传递DataSource实现对象,您可以自由选择市面上的任意DataSource实现,本例采用dbcp
  2. BasicDataSource mysqlDataSource = new BasicDataSource();
  3. mysqlDataSource.setDriverClassName("com.mysql.jdbc.Driver");
  4. mysqlDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/quickdao");
  5. mysqlDataSource.setUsername("root");
  6. mysqlDataSource.setPassword("123456");
  7. DAO dao = QuickDAO.newInstance()
  8. //指定DataSource
  9. .dataSource(mysqlDataSource)
  10. //指定要扫描的实体类包,支持多级目录
  11. .packageName("cn.schoolwow.quickdao.entity")
  12. //指定要扫描的实体类包,支持多级目录,同时添加表名前缀quickdao
  13. .packageName("cn.schoolwow.quickdao.entity","quickdao")
  14. //指定扫描单个实体类
  15. .entity(Person.class)
  16. //是否自动新增表,默认开启
  17. .autoCreateTable(false)
  18. //是否自动新增字段,默认开启
  19. .autoCreateProperty(false)
  20. //指定全局Id策略
  21. .idStrategy(IdStrategy.IdGenerator)
  22. //指定全局Id生成期实例(目前只支持雪花算法)
  23. .idGenerator(new SnowflakeIdGenerator())
  24. //是否建表时建立外键约束,默认关闭
  25. .foreignKey(false)
  26. //忽略指定实体类
  27. .ignoreClass(Person.class)
  28. //忽略指定实体类包
  29. .ignorePackageName("cn.schoolwow.quickdao.entity.ignore")
  30. //返回DAO接口对象
  31. .build();

动态定义实体类注解

QuickDAO支持动态指定实体类注解,此功能适用于扫描第三方实体类包,即无法编辑实体类源码时.

  1. DAO dao = QuickDAO.newInstance()
  2. .define(Person.class)
  3. .tableName("p")
  4. .property("lastName")
  5. .notNull(true)
  6. .unique(true)
  7. .defaultValue("quickdao")
  8. .done()
  9. .comment("Person表")
  10. .done()
  11. .build();

指定全局Id策略

您可以指定全局Id生成策略,该全局策略对所有使用@Id注解的字段起作用

  1. public class User{
  2. @Id
  3. private long id;
  4. }
  5. QuickDAO.newInstance()
  6. //指定全局Id策略
  7. .idStrategy(IdStrategy.IdGenerator)
  8. .done();

若手动使用@Id注解设置了strategy属性,则使用@Id注解所设置的策略

QuickDAO内置了SnowflakeIdGenerator生成器,您也可以通过实现IdGenerator接口自定义Id生成器

id生成器只对所有用@Id注解的属性起效果,请务必在id属性上添加@Id注解