From f983fd290fa61387179ede87757dc725e2be2923 Mon Sep 17 00:00:00 2001 From: veasion Date: Thu, 16 Dec 2021 10:41:22 +0800 Subject: [PATCH] modify --- README.md | 34 +++++++++++++++++-- .../db/criteria/QueryCriteriaConvert.java | 4 +-- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index aac9bcf..97c7dfe 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # veasion-db -version-db 是一个轻量级持久层db框架,除slf4j-api外不依赖任何第三方jar,该框架提供丰富灵活的数据库操作, +veasion-db 是一个轻量级持久层db框架,除slf4j-api外不依赖任何第三方jar,该框架提供丰富灵活的数据库操作, 单元测试 query/update 目录下有大量示例及demo。 -框架支持sql能实现的任意查询或更新,如关联查询、子查询、关联更新、insert select、不同数据库分页扩展等。 +框架基本支持sql能实现的任意查询或更新,如关联查询、子查询、关联更新、insert select、不同数据库分页扩展等。 框架支持自定义拦截器,内置逻辑删除拦截器,可通过SPI或调用InterceptorUtils.addInterceptor方法加入扩展。 ## maven 依赖 @@ -21,7 +21,7 @@ version-db 是一个轻量级持久层db框架,除slf4j-api外不依赖任何 com.github.veasion veasion-db - v1.0.1 + v1.0.2 ``` 支持sql解析生成veasion-db代码 @@ -332,6 +332,34 @@ public class InsertTest extends BaseTest { } ``` +### 动态查询机制 +支持动态查询机制,可通过配置字段注解提前定义查询方式和动态关联、静态关联表。 +非常灵活的实现前端传参后端动态查询,具体参考单元测试 QueryCriteriaTest + +### spring 项目接入 veasion-db +SPI 实现 cn.veasion.db.jdbc.DataSourceProvider 接口 +```java +public class DefaultDataSourceProvider implements DataSourceProvider { + + @Override + public DataSource getDataSource(EntityDao entityDao, JdbcTypeEnum jdbcTypeEnum) { + // 可已定义根据 jdbcTypeEnum 判断读写类型,获取不同数据源 + // SpringUtils 是获取 bean 的工具类(自写) + return SpringUtils.getBean(DataSource.class); + } + + @Override + public Connection getConnection(DataSource dataSource) throws SQLException { + return org.springframework.jdbc.datasource.DataSourceUtils.getConnection(dataSource); + } + + @Override + public boolean autoClose() { + return false; + } +} +``` + ## 赞助 项目的发展离不开您的支持,请作者喝杯咖啡吧~ diff --git a/src/main/java/cn/veasion/db/criteria/QueryCriteriaConvert.java b/src/main/java/cn/veasion/db/criteria/QueryCriteriaConvert.java index e1cf29d..d4d3a96 100644 --- a/src/main/java/cn/veasion/db/criteria/QueryCriteriaConvert.java +++ b/src/main/java/cn/veasion/db/criteria/QueryCriteriaConvert.java @@ -30,7 +30,7 @@ */ public class QueryCriteriaConvert { - public static final Pattern FIELD_PATTERN = Pattern.compile("[_0-9a-zA-Z]+"); + public static final Pattern FIELD_PATTERN = Pattern.compile("[_0-9a-zA-Z.]+"); private Object object; private EntityQuery query; @@ -115,7 +115,7 @@ private void handleAutoCriteria(AutoCriteria annotation, Map fil if (annotation.skipEmpty() && isEmpty(value)) { return; } - if (!FIELD_PATTERN.matcher(key).matches()) { + if (!FIELD_PATTERN.matcher(key).matches() || key.length() > 30) { throw new FilterException("非法字段:" + key); } if (relationClass != Void.class) {