# wind **Repository Path**: ramer/wind ## Basic Information - **Project Name**: wind - **Description**: 一款小巧的持久化框架,旨在简化数据库操作,支持自动创建表和索引。 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 23 - **Forks**: 3 - **Created**: 2020-05-16 - **Last Updated**: 2025-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wind --- [TOC] [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.ramerf/wind-core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.ramerf/wind-core) 一款小巧的持久化框架,旨在简化数据库操作,支持自动创建表和索引。 ### 支持数据库 - Mysql - PostgreSQL ### 迭代计划 - [ ] SQLite 支持 ### 快速开始 1. 引入jar包: ```xml io.github.ramerf wind-core 5.1.9 ``` 2. 新建实体`Foo` ```java @TableInfo // 该注解是可选的 public class Foo { // 实体必须有主键 @javax.persistence.Id private Long id; } ``` 3. OK,可以使用了! ```java GenericService service = GenericService.with(Foo.class, Long.class); // service可以操作任意实体 service.create(bar) final Cnds cnds = Cnds.of(Foo.class).gt(Foo::setId, 0L).limit(1, 10).orderBy(Foo::getName); service.page(cnds); ``` ### 定义service 需要继承于`BaseService` ```java public interface FooService extends BaseService {} ``` #### 自定义类型处理器 #### 自动建表 #### 可配置项 ```yaml wind: logic-delete-prop: # 是否启用逻辑删除,可以在类上使用@TableInfo(logicDelete = @LogicDelete(enable = true))属性覆盖 enable: false # 逻辑删除字段名 field-name: deleted # 逻辑未删除值(默认为 false) not-delete: false # 逻辑已删除值(默认为 true) deleted: true # entity所在包路径,多个以,分割;如果不需要自动建表可以不配置该项 entity-package: io.github.ramerf.wind.demo.entity.pojo # 自动建表,扫描entity-package下包含@TableInfo的类.可选值:none,create,update.默认:none ddl-auto: update # 批量操作时每次处理的大小,默认为150 batch-size: 500 # 是否自定义枚举反序列化,默认为false.设置为true时,可能需要编写枚举反序列化代码 custom-enum-deserializer: false cache: # 缓存类型.可选值: redis,memory,none 默认none禁用缓存 type: redis # 缓存key前缀 key-prefix: io.github.ramerf.wind # 用于雪花算法 snowflake-prop: worker-id: 3 data-center-id: 2 # 新增/更新时写入值为null的属性,默认写入 write-null-prop: false ``` #### 可用注解 - @TableInfo 用于指定表信息 - @TableColumn 用于指定列信息 - @LogicDelete 用于@TableInfo注解指定逻辑删除信息 - @TypeHandler 当全局类型处理器不满足需求时,用于指定特定字段使用的类型处理器 - @CreateTimestamp 指定该字段值为创建时间 - @UpdateTimestamp 指定该字段为更新时间 - @ManyToOne 多对一 - @OneToMany 一对多 - @OneToOne 一对一 #### 联系我 如果您在使用本项目时遇到问题,请邮件联系 - Mail: [1390635973@qq.com](mailto:1390635973@qq.com) #### 开源协议 [GNU GENERAL PUBLIC LICENSE](http://www.gnu.org/licenses)