https://github.com/yangziwen/quick-dao
对Spring JDBC, MyBatis, sql2o等orm框架进行封装和抽象,用于快速实现增删改查功能 https://yangziwen.github.io/quick-dao
https://github.com/yangziwen/quick-dao
elasticsearch mybatis orm spring-jdbctemplate sql2o
Last synced: about 1 month ago
JSON representation
对Spring JDBC, MyBatis, sql2o等orm框架进行封装和抽象,用于快速实现增删改查功能 https://yangziwen.github.io/quick-dao
- Host: GitHub
- URL: https://github.com/yangziwen/quick-dao
- Owner: yangziwen
- License: apache-2.0
- Created: 2018-12-30T14:58:42.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-12-21T03:37:16.000Z (about 2 months ago)
- Last Synced: 2025-12-22T23:44:01.761Z (about 2 months ago)
- Topics: elasticsearch, mybatis, orm, spring-jdbctemplate, sql2o
- Language: Java
- Homepage:
- Size: 940 KB
- Stars: 7
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# QuickDAO
[](https://github.com/yangziwen/quick-dao/actions/workflows/maven.yml)
[](https://coveralls.io/github/yangziwen/quick-dao?branch=master)
[](https://www.codacy.com/gh/yangziwen/quick-dao/dashboard?utm_source=github.com&utm_medium=referral&utm_content=yangziwen/quick-dao&utm_campaign=Badge_Grade)
### 项目介绍
QuickDAO通过对Spring JDBC, MyBatis, sql2o等orm框架进行简单封装,实现增删改查方法的抽象和复用,有效消除DAO层的样板代码。
### 项目文档
[https://yangziwen.github.io/quick-dao](https://yangziwen.github.io/quick-dao/)
### 快速开始
* 引入项目依赖
```xml
io.github.yangziwen
quick-dao-spring-jdbc
0.0.21
io.github.yangziwen
quick-dao-mybatis
0.0.21
io.github.yangziwen
quick-dao-sql2o
0.0.21
```
* 定义数据的实体类
数据库的表名、字段名默认由实体类的类名、字段名按驼峰法转下划线法获得,也可基于JPA注解显式指定
```java
@Data
@Table(name = "user")
public class User {
@Id
@Column
@GeneratedValue
private Long id;
@Column
private String username;
@Column
private String email;
@Column
private Integer age;
}
```
* 数据访问类继承BaseRepository接口的实现类(以Spring JDBC为例)
```java
public class UserRepository extends BaseSpringJdbcRepository {
public UserRepository(DataSource dataSource) {
super(new JdbcTemplate(dataSource));
}
// UserRepository已继承了针对User对象的增删改查(包括分页)方法
}
```
* 在数据访问类中实现个性化的查询方法
```java
public List listByAgeRange(int minAge, int maxAge) {
Criteria criteria = new Criteria()
.and("age").ge(minAge)
.and("age").le(maxAge);
return list(criteria);
}
```
* 使用类型安全的方式构造查询条件
```java
public List listByAgeRange(int minAge, int maxAge) {
Criteria criteria = new TypedCriteria<>(User.class)
.and(User::getAge).ge(minAge)
.and(User::getAge).le(maxAge);
return list(criteria);
}
```
* 更多例子,可参考[使用手册](https://yangziwen.github.io/quick-dao/manual/)以及 [quick-dao-example](https://github.com/yangziwen/quick-dao/tree/master/quick-dao-example) 中的[单元测试](https://github.com/yangziwen/quick-dao/tree/master/quick-dao-example/src/test/java/io/github/yangziwen/quickdao/example/repository/base)