QuickDAO Java ORM 框架开源项目

我要开发同款
匿名用户2019年05月30日
35阅读
开发技术Java
所属分类程序开发、ORM/持久层框架
授权协议GPL

作品详情

QuickDAO

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

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

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

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

快速入门1建立实体类//用户类publicclassUser{privatelongid;privateStringusername;privateStringpassword;//用户设置表publicclassUserSetting{privatelongid;privatelonguserId;privateStringsetting;privateUseruser;//用户关注表publicclassUserFollow{privatelongid;privatelonguserId;privatelongfollowerId;privateUseruser;privateUserfollowUser;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后无需再对数据库做任何操作.

BasicDataSourcemysqlDataSource=newBasicDataSource();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.DAOdao=QuickDAO.newInstance().dataSource(mysqlDataSource).packageName("cn.schoolwow.quickdao.entity").build();//之后所有的操作使用dao对象完成3.1简单查询与更新操作//根据id查询Useruser=dao.fetch(User.class,1);//根据属性查询Useruser=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测试用例,可查看ConditionTest和DAOTest.

反馈

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

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论