Easy-Query 技术文档:安装与使用指南
1. 安装指南
1.1 系统要求
- JDK 8/11/17
- 支持框架:SpringBoot 2.x/3.x、Solon 2.x
- 数据库:MySQL(默认支持)
1.2 Maven依赖配置
在项目的pom.xml中添加以下依赖:
<properties>
<easy-query.version>最新版本号</easy-query.version>
</properties>
<!-- 核心依赖 -->
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-api-proxy</artifactId>
<version>${easy-query.version}</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>com.easy-query</groupId>
<artifactId>sql-mysql</artifactId>
<version>${easy-query.version}</version>
</dependency>
提示:最新版本号可通过Maven中央仓库搜索
com.easy-query获取
2. 项目使用说明
2.1 基础配置
在SpringBoot项目中,添加以下配置到application.yml:
easy-query:
default-data-source: yourDataSourceName
dialect: mysql
log-sql: true
2.2 实体类示例
使用@EntityProxy注解标记实体类:
@EntityProxy
@Data
public class BlogEntity {
private String id;
private String title;
private String content;
private Integer star;
private LocalDateTime createTime;
}
2.3 核心功能演示
单表查询
List<BlogEntity> blogs = easyEntityQuery.queryable(BlogEntity.class)
.where(b -> b.content().like("技术文章"))
.orderBy(b -> b.createTime().desc())
.toList();
多表关联查询
List<SysUser> users = entityQuery.queryable(SysUser.class)
.where(user -> {
user.company().name().like("科技公司");
})
.orderBy(user -> {
user.company().registerMoney().desc();
user.birthday().asc();
}).toList();
3. API使用文档
3.1 查询API
基本查询
// 条件查询
List<T> list = queryable.where(o -> o.id().eq("123")).toList();
// 分页查询
List<T> pageList = queryable.where(o -> o.age().gt(18))
.orderBy(o -> o.createTime().desc())
.limit(0, 10)
.toList();
聚合查询
Long count = queryable.where(o -> o.status().eq(1))
.count();
BigDecimal sum = queryable.where(o -> o.amount().gt(100))
.sum(o -> o.amount());
3.2 增删改API
插入数据
int inserted = easyEntityInsertable.insert(entity)
.executeRows();
更新数据
int updated = easyEntityUpdatable.update(entity)
.where(o -> o.id().eq(entity.getId()))
.executeRows();
删除数据
int deleted = easyEntityDeletable.delete(entity)
.where(o -> o.id().eq("123"))
.executeRows();
4. 项目安装方式
4.1 本地安装
- 克隆项目仓库:
git clone https://github.com/dromara/easy-query.git
- 构建项目:
mvn clean install
4.2 容器化部署
提供Dockerfile示例:
FROM openjdk:17-jdk-slim
COPY target/your-app.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
构建并运行:
docker build -t easy-query-app .
docker run -p 8080:8080 easy-query-app
5. 高级特性
5.1 隐式关联查询
// 一对多关联查询
List<Company> companies = entityQuery.queryable(Company.class)
.where(company -> {
company.users().any(u -> u.name().like("张三"));
}).toList();
5.2 动态表名
String dynamicTableName = "table_" + LocalDate.now().getYear();
List<BlogEntity> blogs = easyEntityQuery.queryable(BlogEntity.class)
.asTable(o -> dynamicTableName)
.toList();
5.3 CASE WHEN表达式
List<Draft3<Long, Long, BigDecimal>> result = entityQuery.queryable(SysUser.class)
.select(user -> Select.DRAFT.of(
user.id().count().filter(() -> user.address().eq("杭州")),
user.id().count().filter(() -> user.address().eq("北京")),
user.age().avg().filter(() -> user.address().eq("北京"))
)).toList();
6. 注意事项
- 实体类必须使用
@EntityProxy注解 - 项目构建时需要启用APT处理
- 复杂查询建议使用
subQueryToGroupJoin优化性能 - 生产环境建议关闭SQL日志(
log-sql: false)
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



