Easy-Query 技术文档:安装与使用指南

Easy-Query 技术文档:安装与使用指南

【免费下载链接】easy-query java/kotlin high performance lightweight solution for jdbc query,support oltp and olap query,一款java下面支持强类型、轻量级、高性能的ORM,致力于解决jdbc查询,拥有对象模型筛选、隐式子查询、隐式join 【免费下载链接】easy-query 项目地址: https://gitcode.com/dromara/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 本地安装

  1. 克隆项目仓库:
git clone https://github.com/dromara/easy-query.git
  1. 构建项目:
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. 注意事项

  1. 实体类必须使用@EntityProxy注解
  2. 项目构建时需要启用APT处理
  3. 复杂查询建议使用subQueryToGroupJoin优化性能
  4. 生产环境建议关闭SQL日志(log-sql: false)

【免费下载链接】easy-query java/kotlin high performance lightweight solution for jdbc query,support oltp and olap query,一款java下面支持强类型、轻量级、高性能的ORM,致力于解决jdbc查询,拥有对象模型筛选、隐式子查询、隐式join 【免费下载链接】easy-query 项目地址: https://gitcode.com/dromara/easy-query

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值