Skip to content

Releases: sagframe/sagacity-sqltoy

5.2.89 优化数据库关键词设置顺序,修复设置packagesToScan导致关键词失效

05 Jan 15:10
64d2f2a
Compare
Choose a tag to compare

1、优化数据库关键词设置顺序,提前到EntityManager.initialize()前面,修复设置packagesToScan导致关键词失效问题

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.89</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.89</version>
</dependency>

5.2.88 支持通过pojo自动生成表结构和自动建表

31 Dec 04:26
689aa6f
Compare
Choose a tag to compare

1、增强link功能,增加result-type="LIST|ARRAY" 特性,colunns只能是单列场景适配

<sql id="qstart_link_case">
	<value>
	<![CDATA[
	       select t.ORGAN_ID ,t.ORGAN_ID ORGAN_NAME, t.STAFF_NAME 
               from sqltoy_staff_info t
	       order by t.ORGAN_ID 
	]]>
	</value>
	<!-- 将机构下面的员工组织成一个数组或List,columns只能单个列适用 -->
	<link id-columns="ORGAN_ID" columns="STAFF_NAME" result-type="LIST" distinct="true" />
        <!-- 将机构下面的多个员工用逗号拼接成单个字符串   -->
        <!--<link id-columns="ORGAN_ID" columns="STAFF_NAME"  sign="," distinct="true" />-->
</sql>

2、支持通过pojo自动生成表结构和自动建表(默认支持mysql、postgresql、oracle、sqlserver)
自行扩展需要实现的接口(mysql、postgresql、oracle、sqlserver提供了默认实现,无需扩展)

package org.sagacity.sqltoy.plugins.ddl;
import org.sagacity.sqltoy.model.TableMeta;
public interface DialectDDLGenerator {
	/**
	 * @TODO 根据单个POJO产生创建表的sql
	 * @param tableMeta
         * @param schema 仅针对sqlserver生成表或字段注释有效,其它数据库填null即可
	 * @param dbType
	 * @return
	 */
	public default String createTableSql(TableMeta tableMeta,String schema, int dbType) {
		return null;
	}
}

说明:yml配置中要设置packagesToScan 和 autoDDL,同时quickvo要使用5.2.0版本

# 增加包扫描路径,打开autoDDL
spring:
   sqltoy:
       packagesToScan: 
       - com.sqltoy.quickstart.vo
       autoDDL: true
       #dialectDDLGenerator: com.xxxx.自定义扩展实现类
## 演示生成文件
@Test
public void testCreateSqlFile() {
   String[] scanPackages = new String[] { "com.sqltoy.quickstart.vo" };
   try {
     DDLFactory.createSqlFile(scanPackages, "D://sqltoy.sql", DBType.POSTGRESQL,null, null);
   } catch (Exception e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
   }
}
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.88</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.88</version>
</dependency>

5.2.88.RC5 支持通过pojo自动生成表结构和自动建表

29 Dec 14:53
689aa6f
Compare
Choose a tag to compare

1、支持通过pojo自动生成表结构和自动建表(默认支持mysql、postgresql、oracle、sqlserver)

package org.sagacity.sqltoy.plugins.ddl;
import org.sagacity.sqltoy.model.TableMeta;
public interface DialectDDLGenerator {
	/**
	 * @TODO 根据单个POJO产生创建表的sql
	 * @param tableMeta
         * @param schema 仅针对sqlserver生成表或字段注释有效,其它数据库填null即可
	 * @param dbType
	 * @return
	 */
	public default String createTableSql(TableMeta tableMeta,String schema, int dbType) {
		return null;
	}
}

说明:yml配置中要设置packagesToScan 和 autoDDL,同时quickvo要使用5.2.0版本

# 增加包扫描路径,打开autoDDL
spring:
   sqltoy:
       packagesToScan: 
       - com.sqltoy.quickstart.vo
       autoDDL: true
       #dialectDDLGenerator: com.xxxx.自定义扩展实现类
## 演示生成文件
@Test
public void testCreateSqlFile() {
   String[] scanPackages = new String[] { "com.sqltoy.quickstart.vo" };
   try {
         DDLFactory.createSqlFile(scanPackages, "D://sqltoy.sql", DBType.POSTGRESQL,null, null);
   } catch (Exception e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
   }
}
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.88.RC5</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.88.RC5</version>
</dependency>

5.2.87 修复@include(:sqlscript)动态sql片段未清理缓存的缺陷

19 Dec 13:52
Compare
Choose a tag to compare

1、修复@include(:sqlscript)动态sql片段未清理缓存的缺陷
2、优化:paramName匹配,支持xxx_:paramName下划线相邻的场景

5.3.60 同步发版

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.87</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.87</version>
</dependency>

5.2.86 中文日期解析优化、其他部分代码编写优化

11 Dec 08:27
Compare
Choose a tag to compare

1、中文日期解析优化、其他部分代码编写优化 (非关键缺陷,请选择性升级)

5.3.59 同步发版

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.86</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.86</version>
</dependency>

5.2.85 优化DateUtil工具类,强化英文格式解析

05 Dec 10:46
Compare
Choose a tag to compare

1、优化DateUtil工具类,支持英文格式、中文格式字符串自动解析,并强化兼容性,强化格式化,采用LocalDateTime和LocalTime对应的解析,提升微秒、纳秒的解析精度

5.3.58 同步发版

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.85</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.85</version>
</dependency>

5.2.84 优化CTE 语句在sql内部场景分页处理、DateUtil支持毫秒、纳秒格式化

04 Dec 07:27
Compare
Choose a tag to compare

1、优化with t as () 语句不在sql开始位置场景处理,以及优化类似postgre物化CTE语法解析

with t1 (a, b) as NOT  MATERIALIZED (select * from table),t2(c,d) as materialized(select name from ta)

2、DateUtil增强对毫秒、纳秒的格式化,同时增强sql日志输出关于LocalDateTime和LocalTime的定制格式

# 默认 yyyy-MM-dd HH:mm:ss,可选auto 或yyyy-MM-dd HH:mm:ss.SSSSSSSSS 或yyyy-MM-dd HH:mm:ss.SSSSSS等
# auto 表示根据纳秒值来自动设定格式
spring.sqltoy.localDateTimeFormat=yyyy-MM-dd HH:mm:ss.SSSSSSSSS
# 默认:HH:mm:ss,可选:auto 或HH:mm:ss.SSSSSSSSS 或 HH:mm:ss.SSS 或 HH:mm:ss.SSSSSS
spring.sqltoy.localTimeFormat=HH:mm:ss.SSSSSSSSS

3、MapperUtil增加PropsMapperConfig来指定只映射哪些属性或排除哪些不映射的属性

/**
 *  new PropsMapperConfig(ignoreProperties).isIgnore(true))
 */
public static <T extends Serializable> T map(Serializable source, Class<T> resultType,
			PropsMapperConfig propsMapperConfig) 

4、修复83版本in (?) 参数非数组是单个数字字符串处理缺陷

5.3.57 同步发版

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.84</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.84</version>
</dependency>

5.2.83 优化ES sql模式的判定,部分jdk17标记为@Deprecated的替换

28 Nov 05:19
Compare
Choose a tag to compare

1、改进elasticsearch sql 模式的查询判定,改为(?i)^select\W+匹配则为sql模式(之前是同时包含select和from不严谨)
2、针对JDK17部分标记为@deprecated的方法进行修改,主要是少量new Double、new Float等
3、升级spring和springboot依赖,5.3.56升级spring-boot3.2,同时适配SpringMongoQuery中的limit(int limit)之前是Integer

5.3.56 同步发版

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.83</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.83</version>
</dependency>

5.2.82 MapperUtil增加copyProperties,增加dialectMap映射功能

23 Nov 16:15
Compare
Choose a tag to compare

1、MapperUtil增加copyProperties对单个对象和对象集合属性值复制赋值
2、增加spring.sqltoy.dialectMap<String,String>属性,提供将特定数据库方言映射为其它数据库方言执行
如:OSCAR(神通)映射为gaussdb

spring:
      sqltoy:
            dialectMap:
                   oscar: gaussdb

3、强化in (:inArg) 当inArg值是一个字符串时的校验,比如值为:"'a','b'" 则是合法的(防止sql注入),可以拼接进sql,否则当一个动态条件参数值pst.setString(index,inArg)

5.3.55 同步发版

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.82</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.82</version>
</dependency>

5.2.81 条件参数filter处理支持枚举类型

16 Nov 01:17
Compare
Choose a tag to compare

1、条件参数filter处理过程支持枚举类型
2、宏里面的参数支持枚举类型,如@ loop
3、sql日志输出支持枚举类型

5.3.54 同步发版

<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy</artifactId>
	<version>5.2.81</version>
</dependency>
<dependency>
	<groupId>com.sagframe</groupId>
	<artifactId>sagacity-sqltoy-starter</artifactId>
	<version>5.2.81</version>
</dependency>