1
mirror of https://github.com/CarmJos/EasySQL.git synced 2026-06-14 03:15:55 +08:00

Compare commits

..

68 Commits

Author SHA1 Message Date
carm 43baf4aa24 [v0.2.8] [R] 使用Supplier获取是否为Debug模式。 2022-01-24 15:25:12 +08:00
carm edadc50c22 将Javadoc部署整合到Maven Deploy 2022-01-14 12:40:35 +08:00
carm 6c08d265c5 修改构建名 2022-01-12 11:09:17 +08:00
carm 8878379f66 [v0.2.7] [U] 修改了SQLQuery的包位置。 2022-01-12 11:06:28 +08:00
carm 4963719956 [v0.2.7] [U] 进一步简化操作使用逻辑 2022-01-12 10:55:47 +08:00
carm 9bd1556de2 [v0.2.7] [U] 进一步简化操作使用逻辑 2022-01-12 10:55:37 +08:00
carm 66bc427f62 修改开源协议 2022-01-08 17:30:21 +08:00
carm 864c2ac128 修改协议 2022-01-08 17:29:26 +08:00
carm 69aaf4398f Create FUNDING.yml 2022-01-08 02:36:43 +08:00
carm 9e237b36bd 修改ISSUES格式 2022-01-08 01:00:07 +08:00
carm 5f13b9319d [v0.2.6] 版本更新
- [U] 优化 ConditionalBuilder 的使用方式。
- [A] 为 TableQueryBuilder 添加分表查询limit方法。
- [A] 添加 SQLFunction 类,用于对SQL结果直接进行处理,且不需要在方法内处理异常,交由 ExceptionHandler 进行处理。
2022-01-08 00:55:31 +08:00
carm 5601d1288c [v0.2.6] 版本更新
- [U] 优化 ConditionalBuilder 的使用方式。
- [A] 为 TableQueryBuilder 添加分表查询limit方法。
2022-01-07 23:01:44 +08:00
carm 50b36d8430 [v0.2.5] 打包时不再对slf4j-api进行relocation 2022-01-06 14:39:28 +08:00
carm cd60bf256e 添加依赖地址 2022-01-05 05:09:49 +08:00
carm ebe68befee 添加依赖地址 2022-01-05 04:59:02 +08:00
carm 594413e13b 添加依赖地址 2022-01-05 04:56:57 +08:00
carm df94272c73 [v0.2.4] 依赖relocation并添加Optional标签 2022-01-05 02:32:09 +08:00
carm ab986e9526 [v0.2.3] 添加默认的终止manager方法,并支持强制关闭活动链接。 2021-12-23 15:17:12 +08:00
carm 3f3b7bf4a5 添加代码折叠 2021-12-20 19:09:57 +08:00
carm c69695c16d Merge remote-tracking branch 'origin/master' 2021-12-20 19:08:28 +08:00
carm 02aad28715 添加代码折叠 2021-12-20 19:07:04 +08:00
carm b423000fe5 [U] 使用SonarCloud分析 2021-12-20 18:41:25 +08:00
carm cf356f2492 [U] 使用 SonarCloud 分析。 2021-12-20 18:40:29 +08:00
carm 4775c335d5 [v0.2.2] 版本优化
- `[F]` 修复部分类的使用异常问题
- `[F]` 修复 SQLUpdateBatchAction 中 getSQLContent 方法返回内容不正确导致的其他方法一并出现异常的问题。
- `[U]` 修改 SQLUpdateBatchAction 的默认异常处理器。
- `[F]` 修复 PreparedSQLBatchUpdateActionImpl 异常继承导致的无法使用的问题。
2021-12-19 23:53:35 +08:00
carm 84c35eb481 [v0.2.2] 版本优化
- `[F]` 修复部分类的使用异常问题
- `[F]` 修复 SQLUpdateBatchAction 中 getSQLContent 方法返回内容不正确导致的其他方法一并出现异常的问题。
- `[U]` 修改 SQLUpdateBatchAction 的默认异常处理器。
- `[F]` 修复 PreparedSQLBatchUpdateActionImpl 异常继承导致的无法使用的问题。
2021-12-19 23:47:48 +08:00
carm d30b6b9ab2 添加gpg配置 2021-12-15 20:11:57 +08:00
carm f70f73daf2 Merge remote-tracking branch 'origin/master' 2021-12-15 20:08:33 +08:00
carm 4a7c11ef13 添加SCM配置 2021-12-15 20:08:16 +08:00
carm 427aca95ca Create codacy-analysis.yml 2021-12-15 17:07:49 +08:00
carm 2b86d9234a [v0.2.1-fix] 修改javadoc为中文版本 2021-12-14 20:33:24 +08:00
carm 139d213160 [v0.2.1-fix] 补全缺失的javadoc 2021-12-14 20:23:51 +08:00
carm ebc96e5176 [v0.2.1-fix] 补全缺失的javadoc 2021-12-14 20:19:04 +08:00
carm 7621c86495 [v0.2.1-fix] 修改Javadoc 2021-12-14 20:08:54 +08:00
carm 95182748ef [v0.2.1-fix] 修改Java版本 2021-12-14 20:03:47 +08:00
carm b22dba58d9 [v0.2.1] 版本更新
1. 补充演示代码与部分关键内容的Javadoc
2. 自动部署包含连接池的版本,方便打包使用。
3. 修改了部分代码的逻辑。
2021-12-14 19:56:21 +08:00
carm 8ccf977345 自动部署含连接池版本 2021-12-14 19:53:09 +08:00
carm ac1a9082c7 修改document位置 2021-12-14 19:51:41 +08:00
carm f0650ea720 补充部分JavaDoc 2021-12-14 19:47:35 +08:00
carm 76476a8f9f Merge pull request #1 from MociLSeng/master
master
2021-12-14 19:25:47 +08:00
LSeng cbddc426d2 补充介绍 2021-12-14 18:30:27 +08:00
carm 22c067990b 添加一个同步插入返回ID的方法 2021-12-14 17:30:51 +08:00
carm 2d384bdd15 修改代码演示的位置 2021-12-14 17:24:45 +08:00
carm 85d2ee8984 修改代码示例的注释 2021-12-14 16:25:25 +08:00
carm 7669257028 添加version地址 2021-12-14 16:16:18 +08:00
carm bc00330eef 添加version地址 2021-12-14 16:14:53 +08:00
carm d7db2fbb52 实装 executeAsync 功能,修改异常处理方式,提供action方便获取相关信息。 2021-12-14 16:11:22 +08:00
carm 6de493afbc 修改实例代码 2021-12-14 16:09:55 +08:00
carm 2ecc442bd9 修改Javadoc地址 2021-12-14 06:22:52 +08:00
carm ec2dab31ab 添加Javadoc地址 2021-12-14 06:21:26 +08:00
carm 315a591375 修改部署地址 2021-12-14 06:12:48 +08:00
carm cfac4e2ec6 修改 JAVADOC-README.md 的路径 2021-12-14 06:11:21 +08:00
carm 0f94204b6a 修改javadoc生成方式 2021-12-14 06:03:44 +08:00
carm cbb3576167 添加开源协议到构建文件中 2021-12-14 05:54:14 +08:00
carm 6710dfd027 添加开源协议 2021-12-14 05:50:23 +08:00
carm 27d395d3e3 修正代码格式 2021-12-14 05:43:22 +08:00
carm a290749b46 修正代码格式 2021-12-14 05:42:13 +08:00
carm 6f278ee8b0 初始版本完成 2021-12-14 05:39:38 +08:00
carm 0f20ae2913 添加开源协议 2021-12-14 05:34:12 +08:00
carm 7e53bbe33e 添加示例代码 2021-12-14 05:31:13 +08:00
carm df4510c026 添加开发介绍 2021-12-14 04:41:11 +08:00
carm 1cca96ee5a 补充依赖方式 2021-12-14 04:32:11 +08:00
carm 3d88699fa6 添加Issues模板 2021-12-12 00:34:05 +08:00
carm cfe6b4fada 修改对于api的依赖版本 2021-12-12 00:18:17 +08:00
carm 4502905707 修改模块文件夹名 2021-12-12 00:15:51 +08:00
carm 00ab407e3a 项目初始化 2021-12-12 00:13:37 +08:00
carm 73372daed0 Update maven.yml 2021-12-12 00:12:51 +08:00
carm c945aeb7d6 Create codeql-analysis.yml 2021-12-12 00:11:42 +08:00
carm b6a970b372 项目初始化 2021-12-12 00:09:19 +08:00
143 changed files with 3484 additions and 561 deletions
+9
View File
@@ -0,0 +1,9 @@
# EasySQL Javadoc
基于 [Github Pages](https://pages.github.com/) 搭建,请访问 [JavaDoc](https://carmjos.github.io/EasySQL) 。
## 如何实现?
若您也想通过 [Github Actions](https://docs.github.com/en/actions/learn-github-actions)
自动部署项目的Javadoc到 [Github Pages](https://pages.github.com/)
可以参考我的文章 [《自动部署Javadoc到Github Pages》](https://pages.carm.cc/doc/javadoc-in-github.html) 。
+3
View File
@@ -0,0 +1,3 @@
# 欢迎使用 EasySQL
这个项目刚刚创建,详细的Javadoc与开发指南还在补充,请给我一点时间~
+2
View File
@@ -0,0 +1,2 @@
github: [ CarmJos ]
custom: [ 'https://donate.carm.cc' ]
+34
View File
@@ -0,0 +1,34 @@
---
name: 问题提交 about: 描述问题并提交,帮助我们对其进行检查与修复。 title: ''
labels: bug assignees: ''
---
### **问题简述**
用简短的话语描述一下大概问题。
### **问题来源**
描述一下通过哪些操作才发现的问题,如:
1. 使用了 '...'
2. 输入了 '....'
3. 出现了报错 '....'
### **预期结果** (可选)
如果问题不发生,应该是什么情况
### **问题截图/问题报错**
如果有报错或输出,请提供截图。
### **操作环境**
- 系统环境: `Windows 10` / `Ubuntu` / `...`
- Java版本: `JDK11` / `OPENJDK8` / `JRE8` / `...`
### **其他补充**
如有其他补充,可以在这里描述。
+21
View File
@@ -0,0 +1,21 @@
---
name: 功能需求 about: 希望我们提供更多的功能。 title: ''
labels: enhancement assignees: ''
---
### **功能简述**
简单的描述一下你想要的功能
### **需求来源**
简单的描述一下为什么需要这个功能。
### **功能参考**(可选)
如果有相关功能的参考,如文本、截图,请提供给我们。
### **附加内容**
如果有什么小细节需要重点注意,请在这里告诉我们。
+54
View File
@@ -0,0 +1,54 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow checks out code, performs a Codacy security scan
# and integrates the results with the
# GitHub Advanced Security code scanning feature. For more information on
# the Codacy security scan action usage and parameters, see
# https://github.com/codacy/codacy-analysis-cli-action.
# For more information on Codacy Analysis CLI in general, see
# https://github.com/codacy/codacy-analysis-cli.
name: "Codacy Security Scan"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '27 16 * * 5'
jobs:
codacy-security-scan:
name: Codacy Security Scan
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
uses: actions/checkout@v2
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@d840f886c4bd4edc059706d09c6a1586111c540b
with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
verbose: true
output: results.sarif
format: sarif
# Adjust severity of non-security issues
gh-code-scanning-compat: true
# Force 0 exit code to allow SARIF file generation
# This will handover control about PR rejection to the GitHub side
max-allowed-issues: 2147483647
# Upload the SARIF file generated in the previous step
- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: results.sarif
+70
View File
@@ -0,0 +1,70 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Analysis"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '45 12 * * 1'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'java' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
+79
View File
@@ -0,0 +1,79 @@
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: "Project Deploy"
on:
# 支持手动触发构建
workflow_dispatch:
release:
# 创建release的时候触发
types: [ published ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: "Set up JDK"
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
cache: maven
server-id: github
server-username: MAVEN_USERNAME
server-password: MAVEN_TOKEN
- name: "Maven Deploy With Javadoc"
run: mvn -B deploy --file pom.xml -DskipTests
env:
MAVEN_USERNAME: ${{ github.repository_owner }}
MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: "Copy Javadoc to Location"
run: |
rm -rf docs
mkdir -vp docs
cp -vrf easysql-api/target/apidocs/* docs/
cp -vrf .documentation/JAVADOC-README.md docs/README.md
- name: "Generate the Javadoc sitemap"
id: sitemap
uses: cicirello/generate-sitemap@v1
with:
base-url-path: https://carmjos.github.io/EasySQL
path-to-root: docs
- name: "Output stats"
run: |
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}"
- name: "Configure Git"
env:
DEPLOY_PRI: ${{secrets.DEPLOY_PRI}}
run: |
sudo timedatectl set-timezone "Asia/Shanghai"
mkdir -p ~/.ssh/
echo "$DEPLOY_PRI" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name 'CarmJos'
git config --global user.email 'carm@carm.cc'
- name: "Commit documentations"
run: |
cd docs
git init
git remote add origin git@github.com:CarmJos/EasySQL.git
git checkout -b gh-pages
git add -A
git commit -m "API Document generated."
- name: "Push javadocs"
run: |
cd docs
git push origin HEAD:gh-pages --force
+31
View File
@@ -0,0 +1,31 @@
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Project Build & Tests
on:
# 支持手动触发构建
workflow_dispatch:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: "Set up JDK"
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: "Package"
run: mvn -B package --file pom.xml -Dmaven.javadoc.skip=true
- name: "Target Stage"
run: mkdir staging && cp */target/*.jar staging
- name: "Upload artifact"
uses: actions/upload-artifact@v2
with:
name: Artifact
path: staging
+36
View File
@@ -0,0 +1,36 @@
name: "Sonar Analyze"
on:
push:
branches:
- master
pull_request:
types: [ opened, synchronize, reopened ]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Maven packages
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build and analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=CarmJos_EasySQL
+4
View File
@@ -0,0 +1,4 @@
/.idea/
/target/
/*/target/
**.iml
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Carm
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+198 -20
View File
@@ -1,27 +1,205 @@
# EasySQL Repository
采用github的repo分支进行依赖,随项目发布而自动更新。
其他依赖方式见主页介绍。
## 依赖方式
### Maven
```xml
<repositories>
<repository>
<id>EasySQL</id>
<name>GitHub Branch Repository</name>
<url>https://github.com/CarmJos/EasySQL/blob/repo/</url>
</repository>
</repositories>
```text
______ _____ ____ __
/ ____/___ ________ __ / ___// __ \ / /
/ __/ / __ `/ ___/ / / / \__ \/ / / / / /
/ /___/ /_/ (__ ) /_/ / ___/ / /_/ / / /___
/_____/\__,_/____/\__, / /____/\___\_\/_____/
/____/
```
### Gradle
# EasySQL
[![version](https://img.shields.io/github/v/release/CarmJos/EasySQL)](https://github.com/CarmJos/EasySQL/releases)
[![License](https://img.shields.io/github/license/CarmJos/EasySQL)](https://opensource.org/licenses/GPL-3.0)
[![workflow](https://github.com/CarmJos/EasySQL/actions/workflows/maven.yml/badge.svg?branch=master)](https://github.com/CarmJos/EasySQL/actions/workflows/maven.yml)
[![CodeFactor](https://www.codefactor.io/repository/github/carmjos/easysql/badge)](https://www.codefactor.io/repository/github/carmjos/easysql)
![CodeSize](https://img.shields.io/github/languages/code-size/CarmJos/EasySQL)
![](https://visitor-badge.glitch.me/badge?page_id=EasySQL.readme)
简单便捷的数据库操作工具,可自定义连接池来源。
随项目分别提供 [BeeCP](https://github.com/Chris2018998/BeeCP) 与 [Hikari](https://github.com/brettwooldridge/HikariCP~~~~)
两个连接池的版本。
## 优势
- 基于JDBC开发,可自选连接池、JDBC驱动。
- 简单便捷的增删改查接口,无需手写SQL语句。
- 额外提供部分常用情况的SQL操作
- 自动关闭数据流
- 支持同步操作与异步操作
## 开发
详细开发介绍请 [点击这里](.documentation/README.md) , JavaDoc(最新Release) 请 [点击这里](https://carmjos.github.io/EasySQL) 。
### 示例代码
您可以 [点击这里](easysql-demo/src/main/java/EasySQLDemo.java) 查看部分代码演示,更多演示详见 [开发介绍](.documentation/README.md) 。
### 依赖方式
#### Maven 依赖
<details>
<summary>远程库配置</summary>
```xml
<project>
<repositories>
<repository>
<!--采用github依赖库,安全稳定,但需要配置 (推荐)-->
<id>EasySQL</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/CarmJos/EasySQL</url>
</repository>
<repository>
<!--采用我的私人依赖库,简单方便,但可能因为变故而无法使用-->
<id>carm-repo</id>
<name>Carm's Repo</name>
<url>https://repo.carm.cc/repository/maven-public/</url>
</repository>
</repositories>
</project>
```
</details>
<details>
<summary>原生依赖</summary>
```xml
<project>
<dependencies>
<!--对于需要提供公共接口的项目,可以仅打包API部分,方便他人调用-->
<dependency>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-api</artifactId>
<version>[LATEST RELEASE]</version>
<scope>compile</scope>
</dependency>
<!--如需自定义连接池,则可以仅打包实现部分,自行创建SQLManager-->
<dependency>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-impl</artifactId>
<version>[LATEST RELEASE]</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
```
</details>
<details>
<summary>含连接池版本</summary>
```xml
<project>
<dependencies>
<!--也可直接选择打包了连接池的版本-->
<dependency>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-beecp</artifactId>
<version>[LATEST VERSION]</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-hikaricp</artifactId>
<version>[LATEST VERSION]</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
```
</details>
#### Gradle 依赖
<details>
<summary>远程库配置</summary>
```groovy
repositories {
maven { url 'https://github.com/CarmJos/EasySQL/blob/repo/' }
// 采用github依赖库,安全稳定,但需要配置 (推荐)
maven { url 'https://maven.pkg.github.com/CarmJos/EasySQL' }
// 采用我的私人依赖库,简单方便,但可能因为变故而无法使用
maven { url 'https://repo.carm.cc/repository/maven-public/' }
}
```
</details>
<details>
<summary>原生依赖</summary>
```groovy
dependencies {
//对于需要提供公共接口的项目,可以仅打包API部分,方便他人调用
api "cc.carm.lib:easysql-api:[LATEST RELEASE]"
//如需自定义连接池,则可以仅打包实现部分,自行创建SQLManager
api "cc.carm.lib:easysql-impl:[LATEST RELEASE]"
}
```
</details>
<details>
<summary>含连接池版本</summary>
```groovy
dependencies {
//也可直接选择打包了连接池的版本
api "cc.carm.lib:easysql-beecp:[LATEST RELEASE]"
api "cc.carm.lib:easysql-hikaricp:[LATEST RELEASE]"
}
```
</details>
## 支持与捐赠
若您觉得本插件做的不错,您可以通过捐赠支持我!
感谢您对开源项目的支持!
<img height=25% width=25% src="https://raw.githubusercontent.com/CarmJos/CarmJos/main/img/donate-code.jpg" alt=""/>
## 开源协议
本项目源码采用 [The MIT License](https://opensource.org/licenses/MIT) 开源协议。
<details>
<summary>关于 MIT 协议</summary>
> MIT 协议可能是几大开源协议中最宽松的一个,核心条款是:
>
> 该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版 权和许可提示。
>
> 这意味着:
> - 你可以自由使用,复制,修改,可以用于自己的项目。
> - 可以免费分发或用来盈利。
> - 唯一的限制是必须包含许可声明。
>
> MIT 协议是所有开源许可中最宽松的一个,除了必须包含许可声明外,再无任何限制。
>
> *以上文字来自 [五种开源协议GPL,LGPL,BSD,MIT,Apache](https://www.oschina.net/question/54100_9455) 。*
</details>
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4TsACgkQh337tzeY
bfdEBAv+IpWEqBosXCAlOHmZQiHn86RpfNCum/AG6Io7f/fidglnRPii83R0wTdR
0wGsDCmnfFUJ8U+aqPpYofin/eYuXHLrVmbZrcdugTuIiRoZPcRr1jEcoPXjVuj2
PzAryNBHnMvfVjE3hrBRqz8tgO8wt+pASPkdr4eodE0t6Ad9UKRE3pJ4Dadq4eqQ
exKxBYkJPiA+O1d38bLgd+GkLa9GjW4DmbtyPXmKt2BND/8QJhbwffdboaRprkyl
jM9kpDwt9N03x+FEOBjR6C/vRCawo/0BcF5Wk3QwptcNg+/0K6FLPhTKY9JhalC6
+D5cUx786piMTQRjunbiiXRp2Vv1WVFBZfCMl77/edTwq68ts2yfhJFl5cjYUqGP
avFJUcdIiPqpySOIBaGG8SnADcWk2TpHI/dnURa/vlXqOJj7ryvyPst3OMZrZDyg
X9lLsXYRT0f2MOGfp9TMjej2yI+ho2xaOP2cVOcuLoTX1S/xqVK4IINUVXxGGq0I
i+D0Bgdq
=y6Y6
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
baea323749589ae57aa84eb8d88b5f47
@@ -1 +0,0 @@
52cc39c8c8e3e5abbddfdfd8b88ded2b81f33c8a
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4ToACgkQh337tzeY
bfdfBAv+J3z4x6JXlKUarpvj9wKHVFlgj+4mlruiXHyMpRXhFdbzSrrDQHXQZp82
IGU/ubWOM3luE18MM0v+J0UjbREvVSrwFHVRctGCckOiJFy6ieQiMyG2/usz8Wcl
7uE2H7EyHK2gau32rC4yvGK2bE7Gh9dQvg9FGRatm+MHpEqCJdkf4LIM0K9JtlX6
zFwhkz6pctn4hQmfi0+F3rGgCfVdtakG1Lgv0wLxJ3jeOaa/GwY4miuS0EQbgn6y
0CyVORCdrBYEvPKDAyCizOhG5vQTyZqqUIWk5krhvFsX5T/QhzOuMyZn0GEE34tb
Xqf9MxDLanMVjbmMJoNrPltdEJU2o+KpLlzS/ksKmrUa4+A+x6ojbktAa9gwhMXT
eFkVvFzP/Ah8mRWd+rf9I0DozUT5GikNJvrMM/wMh5ecIECT01b/oTKUvH6aJLRn
JAJcs+Vm2wHIFzY772IHmyaL2YWuMpjeBakWuI63d9KD6DYARWHbdoHbg/xS5D6s
mI+QB3Zw
=ORtM
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
04f2334d79fd4a74468dba3a116ef033
@@ -1 +0,0 @@
b5fff16b0b091dcf4a649d2e70294bac7d2f2f80
Binary file not shown.
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4ToACgkQh337tzeY
bff4ogv/S6JdIaUGohI8ZbzE0GxUPt2tW+DDw6b/MAvSY56MSfZXMYSXU2CiTMor
zsS4YxY783A8uF2VrV3uep6G2cPjerDqVLkclr3CclP7UIeTpx/NZflAWaLvXmzS
yXAqy9fL6mLAPQmlDqIzVmt+xS0Q5ZKzN/Z3Eq/dQcKhCkLhVDNisEz9xQWIIsFp
QxNLtdBAcozHod9YclJfH/PjwQcBJHmq5Heq1ulAQOz8FlrGqEhT9pnXDTRjEHWT
uQtuQr1lFZCR07aD4Ykvoj58jIkOrWW1h6HxTghGvJralnW808duBWYxZcaDx9E/
VUMjdlQ7AjdADS7ONr15norFNXSz57ubw1VVan6/djfZ2I62unNHZfe2uqhZwC8J
bcQdsBegS9EWnj/ecPHXRXqMOPhTgtoXIm8WW3h6u/zbOnPxDKQKsJrIQwwTrr+X
9f+J56ykJoT/gjm1KhEpXJOobeb3bSZDOJe/wLoXo+4mcqRWu4ZFXacTfRJHbA7p
RIHlC+l/
=TWDQ
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
bf49fdc1ccd87629a4b46b77d8d40777
@@ -1 +0,0 @@
cccfddf8a8b1a56bc9daa95aae2999a2d34755aa
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4ToACgkQh337tzeY
bfdvNQv+KPzCF72SRCAHt6XxtOkUey9oO6JFtJWkBy/h8ofGrVRwUuwcomCW8wfw
w2XlFXLKrTXj2oisjKWXGD1jwIKmS2nXrFCn2XiU6tyq6d9x4n9BA3od7fyS6QDP
BiG1Vf9h3klhpijBAot4uMDLVtfPlJp+5ZkCNK/AmwHjvja3PI/Ls+neohz+Dwxv
bSIq1dVeaWCaMwnLgkyn2sIzPv/tUC07EsurN+HF5TuTJy7f9WVFxpDJe7LjOBXj
UUW/4wPLz/tTXSObZivdFL/i7zNavQTqFIuCXPmS6wz4fO1382qZCOnmL03+WxE9
UQaPRa9tRW+Ft1bwsb8cFppylXtWBk94CuUux9vlZTIDbpYkKmw4eI7vFi069tUG
y0a5tOx41r1Sg0LC7DpuNES7mOeKzCOkmI8A150JXeoq0tHXyxlPu/CDzNJJHWPU
aYhrCAUR35Qs+KsDI0NHHT4CetnA81bKms9tmvlbovKngb/sRrTGy9s13+7RCpNc
tTwJjZFo
=jF85
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
f53956b9b0d8fc24a4867438cbcd56b5
@@ -1 +0,0 @@
7169aa1fafd3b401fe7892507ee3102d75e5acc3
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-api</artifactId>
<versioning>
<release>0.4.7</release>
<versions>
<version>0.4.7</version>
</versions>
<lastUpdated>20230315151602</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
ed01effdd37438850973af46c8b83c3a
@@ -1 +0,0 @@
21ebe62b5d39ea00935d5c53800ed49425bdf845
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UUACgkQh337tzeY
bffcNQv+JMHnQWdldkBEDcfRGWn4LxgM7fY9JpsDdevGtg+jS7FGmINeNDKC08Ll
Yc216FwatElgWG7+InXg7CVUZfmWTCGje+dm6wEQZEIYDgVtZ+t/xZ5GCmY3r72T
Yq4vSliq16zHr3C9TOD71jS0CkyCmvuFfV1c1YPjFwZRV3JI2eyLdIL6sP3h20dC
9Um1hYttBEuczbxaJbxw5fuxg10czLccgvFzLYbhARzg5ORum7UaGbecNWa1MHTy
aQGufwUDx+W9h9YC90c1PYEiGAxDGSdbc8GaF4+id2ekxefjMnGx34DYODy17vdq
I66f/SkQr5Ry0ETGFoIEXYcbxVK1JP+pSKSeWy9EYLEfCEQL1nMtkfLZhGJJD8Rx
RDWU5wBCl/N2hQPqXDMedcQRD3CaHnAnVmouitRFPMsszOfvrlr84SIcPpbGzxkM
+1C0n9ipNqUMX8reRm/Ny6fzsncvdrz+huv9+/as4SHY7PtFtg4REsWtaOsuLIOE
jul+iYdu
=P7Q3
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
9e9fde86918063f650fcfa3e479db37c
@@ -1 +0,0 @@
e475311b2169a097573cd90deec3f76476d35461
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UUACgkQh337tzeY
bffUvwv/UoqhWFreHGNlUcqOxHyRGmwp5HI3crNrZMkYrN33AfX4sS2Z4qTPOjAQ
gnWcyVU+oq/Vl6x+gsO+aA8fEMNjEax728DNl4mJY79tgo7ink0cnOqePJAbqGzq
fY4/+6rsYpAhU+V9HnHyGdQoFbI4O2LN3NRUu+kvw1+PvAehyqDGOhagjufWuPtR
62AuQM8N0rIHW4aOiYdp1VcPlXl0e5pSLEksKnhOUQxrJPff/DDyxXZ5GtougzFd
AqmZwKFYtW7ePA7xcIUiCodE212dGsKA+bdrooBhSVd7xMYhhn0O3FRejd6qufx2
S2HO6xJpNHbxdo+QtZL97zburxH4WMcZlcagHLDVleqwr2Ywn3MIlhOKnSYeIIt2
aKa65oY01o13gdbStZsWvu1My63KNKdPAZdL/Q6n36EUlaxvIX4NismfV4l1zwYc
n0cH/PKJzF1bBop66YYQ73q9E0leJTX87HN1B4XCHhXzZrSwSJkLUazS4S8FmHit
J0lLibXG
=Z6i5
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
3ba40442139ac03bba0e08fcf54975a7
@@ -1 +0,0 @@
4f7a5625063af8b1a57ae7f75244a69c4d148dfa
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UQACgkQh337tzeY
bfdw6wv+IlqUCIEEURElEq1iGSiGpyQCjMtDJ8daIZLXOinZTWYTxi90kW6hbSec
qiJC+Izr9Ijq0lpXSjTFtnBj+ubFiunht6axpCvNsEPxgaOZT2hruJYJcP7M8qcw
5IYcPH749sArG6uWiN28KvA2Gcd5L/TFM1QWcU+muLPK0HcwUKANJbqt8Qd6HXsA
QRfek9f00Ke98UbXUH6q7gSLdSL5rZPpvOb3ngRoR6hgek1Wx+nh3z3jhHfk6kgK
cgzQqAavbdZiZ43RAa0EiQ9139c5AseCqRugGa934iBFhthW3I1ZeXNK9hLAlpyB
qcheh6s7MT5ySNQnC/2L1s2Fcj8uMZSbS7T5z0WKhuqoI9O39H7dBZcBF5981yD9
8/jwfPOZNE57Hzy4UToVnHtJAzYWj0XJ1c1TZf1SmgRBH2AhRBi1K3T5h8fGaco+
PaSg7HL7BRFO4EKGkT1a2m/bc+MuVpolFSG9bmp3rvbCKDHFpowvxOCet0sB/hQp
cAzC+aPT
=VguQ
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
a29290293f9d58737e715895a7530691
@@ -1 +0,0 @@
fc1f9ee5138b302ab29cb3ab7434c713d5e41696
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UUACgkQh337tzeY
bfedgwv/fpxnWaRw4Go+AUoFxvM1TT4rM4qYB7xkhs0JoOBjbltw9lDKjwo8ZEX5
ENgkddVh86FtY9I6yLcDhsWs5ryWuXoGV9iHPQfunu0lPkag3q3rP9ZBUHWek/2H
Vn7Dl+o4DIwRBZkQcQgPeD0bLM3QzPz0hc2JFda3sGfQTvrppE4QBfel1/t04og4
K4WfP6dSfRRxtkPURORo6b/oW1JzzqfIs8q/OW+o3xpg39u2gG+/gzj9AME6wwos
iiqjMh0VUCkhjkYrjvty5AcamVfnKi/wkb09Bt+PGKHJMtRanXq9AC4w3+QgNdbF
mPn5RXzvt+LjreO8ATM8hGHKup+1eoxqO9AR0uED8oTHx0GRQkJGMVS/KSlRXRvr
BxvaN+X8cPpAmT+pz2gOa/AdcU21IrpF81/hJGMaAyrwgjfg0PfC5uPbcH/mI3bx
kvCcaTKuYWrO/R7WhsFYHMwGMVdOPR/uENHnCDYs2Q827cQesZY/kVhtf8LNxuMs
MArPSe29
=Lisk
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
06b886006846456247460368fccb29d0
@@ -1 +0,0 @@
f878ef57af4f68bc60fb8eabee3c37d7d2202c1a
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-beecp</artifactId>
<versioning>
<release>0.4.7</release>
<versions>
<version>0.4.7</version>
</versions>
<lastUpdated>20230315151602</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
b8fdc0aa7e3c407f3290a1c2e5470e97
@@ -1 +0,0 @@
3b20670ad7051c1de44968818674bf639099a003
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UoACgkQh337tzeY
bff70Qv9Fte5R2qW59TqkVJ+XoqUlz4D7ITZ05lPZums+5VCHyajmR8/ARVo8scC
vV0LbdnEtd8bZoOhuGt0JrAMZiHYFn09XXr8pvbKP/5aIXe3nHnm0f0nYDZeHiJc
weEJcq4Tu8IlVZzc5TVsuGpsAufU33aSdPvlbV6gNGkGFh3DbcDmjzpOWGAFpK+C
p4knA12fU8l0NB1RIlRTbnbAG9/4mGOQ2oa6dpsEidKzoS5gI1JB1f31fmsiEJ/c
dwH7RVz+o77cRmOcOlwhzNXL058lAMkMXF4BcdRH1MSlAGniyk6557FrMdlgu0fm
8H6IjFz85qcQhGU/fim39jTZPo8eEE0ioTmQ8DiqKHUSH0WGx8w0ycoFWtowptly
FMJyBsGNmz59br6inIVv1hzTCwdGoNEY7l5gZuET4T6C75H5Q+zKYmxH2o4QGPhe
5LluNj5EZ4qW/WCyW1Tx0/BqpmY6i66PWzypJvqZswpcbySzQ1NZ4m3xbEf7wUQB
7UbT3Rwl
=lA7G
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
6bf6d1dad3cc645311a377cee092854b
@@ -1 +0,0 @@
555424db5e9c0ef525f866da660fbe04d7cbfd98
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UoACgkQh337tzeY
bfdm6gwArbsV6vmRD07bzKomu3ved6033uSJdpgbdIhH32hnXNFe/R6Cr1iZO1ft
r6uirBUOUOOhy3KFANlu5xK9Bc49BUig7ysxtWybOOrt2CUBDF6Qmu4IMvmlG+rd
RjLf+FUVPqeEv4KuLLi3Cd2FcNliaBE2uKd4Kc4+6avHq9eifpKNgMBg4peN1X5J
iCt/9irFJHR8oe8xqQhihZ5hY+wsRvkjyngKWq7Ua+1fM+Vw7IpmWNjQEB+nEh1F
4UAbktMd1jqM3bGtxYtk3H5fqfh5+WsdZVZHVT5m1uIDV1q9bQQ8HUCvXKxXWcIp
XNAw7903OMhiuW1ZbwrrY0KSDWkKnEyYpYXvb2lQRZWxC6SckA0n3fYxToJbyr2q
bK9RraofunY0PBVt66nSa6Q1VIgyzP/D7gnWHae1+jOG+uMOQw03fDlUPdAjUoPX
b3dUlIj/kFImYya7VxT6fnYiOHmX7/Jm8ZLPOW4setw1wtE9IuIMzqtiJSHL6mOO
JG6DphEN
=JpXU
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
d85f800d68d3c979785cc1c49487f788
@@ -1 +0,0 @@
313014723857ca21c41867a0c7b70089a1e3b0c7
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UkACgkQh337tzeY
bfe9dgwAsxn1rxt7jhC1RVcVuXI4lpmQNbQd85YbfB2DssOlt0Nq1G91dbrZDMHy
s7Z5xwjA0W75PPQaeQUO8k8MhhGyq7PSPHd45ZZQr9FMEMBo6T7pNCzhrelKcOji
1gl2oDmY+IEtCAbcmcVl36YhekzQxiIaUlKXoH8dzyX2DTZ0ESID6jRdPMLHaJVx
h15sD/Ya5oxXrjur178sbJ4Rxc1m6NiJjGJ6ZqzjQcXFYwMHHegPRH/5esbxRjUK
SmM9v/fMfpcsJ0c9IHo3TwZVFw7nnWL8052CrONNOWtkZ8HKV0NF9Wwq/ZH5dCGb
7MGa1hzBEkl+nNK9Y886+JhXnD23JsqNRvJU06Qb/kNqf7/kWNOcshz+XAk9Rl7l
swgj1YPwMR2sp4W85DbzHwoXubQNxx4c9CJ/XhTwTx3M3RnjKwZKQ0135Ice5xJ2
eJpIFOxrzwgYp/bc6QjibKVK9PtkK0pxicGPw0045hy46i3pzZMJHXBiQt13TzW/
xDvIsWyY
=4TQu
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
d74de7f88561cb498a48466a72f863c2
@@ -1 +0,0 @@
d5d103e081c04eb98396345ed85d721d44a2410d
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UkACgkQh337tzeY
bfej+wwAqjIb6NsJiiCjyz3Fur0dJZoGH+UrxhnC/+MLWAiVWLo70gnu4GiHdm8u
2sPWlYgDaof8DylIqEaRd/TsN+K2dJhGZjdJo+2uKatE77CpPWmZjEt6Jqn8fMaZ
4g72rVYGILZEQb2K6EMVGv0ER9aGvsnNAmWxVKCsxAb/kiEGJRxX4fJeKoX79ThU
HQpY2WjMVGES/NMYNOuoHSxhgjVNc90ujXDRui4i48bB6z/ALoJCIKDIfUI5LUj4
5J5TgN+pJu25voFwAQdh61Fuy2nJfdbxm8oCS3NnUZyCNeJ0m4O2rPj5bgObKUlp
F04LomkuKH1XVDPgcUA8eTJCzg093Al4BkQn5ytURDBb4OHi0JLX9ete9090xZqZ
Fm/YhZ592qeLV8gjXJFfmLOwMOOX2bTJTyCRN0OrBWCDSaiZMOHhKMSkb/e8gt4t
ZDZsUe88cM7zU5+z9I5n5PPCCIklIuCS3yxGQnIgrN9kAvg8Qq3m6AQz22osAouV
fgAdnWIC
=eqhP
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
57fbdd53a3b99b0ff35c95b5d1d0dad9
@@ -1 +0,0 @@
07a7294fa791b01606d08cac0919735e0e5727c6
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-hikaricp</artifactId>
<versioning>
<release>0.4.7</release>
<versions>
<version>0.4.7</version>
</versions>
<lastUpdated>20230315151602</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
14f264b4e7769b743496b061688ffd7c
@@ -1 +0,0 @@
6a5b24f98b6babe34bb8decfc71ae3bbaff8d123
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UAACgkQh337tzeY
bfc9iAwArmoWoBxW4NVxkUFS0DCevQIY/NHR/BKpwGVrdxdnyT2yQfH+zqqFs9dF
8cKDRo/RmpEPkaQYKgdnMMMNfEbL9459C56K6Jprsiy6Fbt3ZI53Wva2JfYEnXTU
duUk9nz9ImprvjsS/29QVd+MvMF0snpn7VQTowTx5F3IIBHXUrMBk7NyWTiRBgaK
KrXUFsLIBn5I/sVmd3OOHLpk+iTxhWljG1Yc02I8h+eGIPBZkGkqP9NeA4MdxY1B
XyIMJ1IoVuWBkWj0kE+E5HyO81alrpp55/Mkdvt/RTecm8VLSSoXQ1wPWS6OOgr5
4VH0jyjed4p8Fbkn8JO2KZVqeb/G7NNuPJct34LY59wzZAwoJXTHjdGOY2RdT6DG
qNvheMRBFfX+ch3Ff9pOplD1LLg0V4n8Vop04Az5oqSoMwSYLCYrJddhTHDcrHT1
VP9stHlQ031aYxeis3DxURw7dIAu96AWTEzcSHQImIQpHZlX8q7IGfUtcOo2swOa
n15Zj6cj
=iH4X
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
f074cd83f1148b1e2302e7c42ed5799e
@@ -1 +0,0 @@
ad572173dbfa7d4514e0d5e8487f080af312c573
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4UAACgkQh337tzeY
bfdUUQwAhT50+Zb1yLQzGoa9F/pqserU0/Mp9xKyTDRbYdBTxbM9MzRu8nSiu7R4
zbW3ZtayeERyzp/QPBS6H5Lsv3xnE02K2D2QZfq504Q0oo5m5kqmKzOT/MN0gUET
Fykp8CkeNaaIfKRPeuHeq/EfdXeCdTS8ClBLogc8beP5sj01eaWBxIxNvvhQ7lta
e8XYYdglFLQgghK6BWb4lbF+ElN8qh0N4zQ+7vaB6Hl8l61L8ns8e2ZWRKGbX0kE
EaEcoip4JnAd9IRTrecVpvaZAi0+CwxaWGebpUQFyD/egrCvoJufL6edu0dzfqit
HYyJQDMf9CsvpqDKqj0zILa74XS4+ohsqKbLdeHpt/sdFINX0xzCYl9fJvV2En88
jYWN+9c6Hr7ZExpudspy/UCTW+rCKGOYcUjhZ0NLOc46lth/NQ+Q0o/FV2s/9kO4
H2RtnTUcbLXG+lPNEAXlTmtNAHzHPbyq6BiS1bfy23qGhBecWt7IZGwFy6DqIXB/
d/Yt1mUz
=H36A
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
992e3a7b5024177b91547ef725176268
@@ -1 +0,0 @@
3303f4c7ac15720532211b5e0aefe20f9b9cb775
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4T8ACgkQh337tzeY
bfdt9gv8D8Sgo4+uF1RLIteSjW8HT0Ujc7u++jyLyM0DSvvVvFiuv+rDsKZoqN/N
V0XQbLbtxM4vxCF9T++NIcdZd3R5U2XN/yz9g9c/wWyDFAAXc500hYoYT6vJTNez
bRtpDeiimhnp64+ziLbtF70OYRYA8Y944KxWCPnkwwWPtFIopCVD+kVyDoWkdAlR
3JCPYnHOPX05NWzT2ekoxGO4egFIRh3UbLUORlMGjZQK3JrCEXS6ej7feeCa0hPc
933GI4Labhfu4hrHfnI6/qo2O5y4BgP5eLTP56jj2/MuPQM4wYnmvxGn/cXSgDv2
eDp7dpx4EFu4YERLKcMnzwrln2035RpFYLX/l9Zi0SbuKbiSSEB34CAQ0HISbaTb
9d3UI1TtEZcY2/Pp8xwCmCYy6ycFdQZX5S0xSymqk6eGNAu+lUjYt+Z76hcG8bnL
08D7JrzlZ1xIT3Z0r5ic1bY6KennM2YYj4JnRrEiQYIFqpO36nPNgJXCsIz5WamL
yseKxuYa
=T4sD
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
12e1c1268ac5361ccd2f4f8ba9a13314
@@ -1 +0,0 @@
9e133c36a7ebc778da6a41e9d16637d1bba5c250
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4T8ACgkQh337tzeY
bfc8YgwAhaOSB96ZNeciNMWEHZP/6ekFU5JK+x9AFn3tN8bFa7fijUaPvsv56OS0
vl3tAYWrjIWa6fPrAaYPZbt9OPceLREkAGIRAjmFQcsDbmffSJ3+YZs3ReC5n+26
lvBa1/mR03+IOQT5/JU3J95LuicDXrCDlkMNsaGS4OkKLy2rQ2p3NYUEAE60YS7s
j+I/ACFHPWCmaKIE0PqzYrz/DcgHokdFnTyM45ChwhcwfCtV0t/uwkJekJ7kFhEM
OiTrm0OhQINA0yO+oQFwt628H7HCmCgCdFuBqcKXEQR9uppf2tYhG/EHv2wL32Sj
muf6kf5ftzmFoxFUOmK9OEP+C5HxZgoCDuLNnvH1iAW8ckKTjNzFM73ei1dl5Fn2
hbdBVF5cNfz2xBPw56jjHbaCqoyUpEyBknjvZMiLN4Hgxz86DbT39BK7OpeAVdEp
4qYWJ1cqE8B8HesvpWGe5+G1S6nvc0Pcxy4T1+KbDFj09MF5lfCDjKQXpIlZmqQC
cPU6fSIe
=sKHT
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
e1c9e5c5e02a2bca79d29282cbc0e523
@@ -1 +0,0 @@
010ddbe669d2c44170baa980ccbf304ed1a86d8a
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-impl</artifactId>
<versioning>
<release>0.4.7</release>
<versions>
<version>0.4.7</version>
</versions>
<lastUpdated>20230315151602</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
b6ef01abc9f7701773776685ba48e77f
@@ -1 +0,0 @@
d809bc7ef72d0148196f6cfc47c3365c4de3556a
@@ -1,14 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEL6NL2WG27xbAlAIkh337tzeYbfcFAmQR4TMACgkQh337tzeY
bfedbwv+KteAko04MxCR1eYWEG1C/5HTPZrzMBljkB0AOB31ZjjCrnT59ePipzpa
84rMWqFmMaSnS+/fFzvQoZ6ANYjVxr5aAYM6d5ddjO0Kf1eeNLWd933RZGL1pfw+
fEKFbcbpienP81BSuIDAdohAGpHVRxdLXSfzxFUelfYb92y1eGOIEfLAVOe3u498
3q1IVFo8FaD1WW7qiDf5EsbnRZrA5wBNR/aQYNMWFmcCoc9Wj9BVT2p0/TQqwoKo
hyL1+ZW8oOrnf76PVzqDfZThea1ht42Nkk1WDZx54GB+72RZ5FhwJJCr/tFrI/ba
QQzMFQNQ2oy0S4fhmah1Li9rJ6r2jbCj8oh7WFNYJTETDq96mMNGoi6NnLj/pePd
GSfVdaKYVIlldaCRXp6fwpxB0GV1XBIaQhseNDwrN6ykERhshQ7U0JT8w+Gaq9Ul
MwkBhZnEPIU1Ypf1xSJv4Q7HeLqn5hg1kpnO91uT4BKk8lXlY5M1OAxslPTb9Bod
KVYgMn4n
=2jcE
-----END PGP SIGNATURE-----
@@ -1 +0,0 @@
7e5947e186b343e8e30a9793a14bbf2f
@@ -1 +0,0 @@
44cc34a8205b6c6cb0a9191df09fe328a55417b9
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-parent</artifactId>
<versioning>
<release>0.4.7</release>
<versions>
<version>0.4.7</version>
</versions>
<lastUpdated>20230315151602</lastUpdated>
</versioning>
</metadata>
@@ -1 +0,0 @@
2d004b7092a59b6a63db7f58db01ebfd
@@ -1 +0,0 @@
f3b09164713d314f6cba05c287e244bef7fb77c0
@@ -5,21 +5,14 @@
<parent>
<groupId>cc.carm.lib</groupId>
<artifactId>easysql-parent</artifactId>
<version>0.4.7</version>
<version>0.2.8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<properties>
<maven.compiler.source>${jdk.version}</maven.compiler.source>
<maven.compiler.target>${jdk.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
<artifactId>easysql-api</artifactId>
<packaging>jar</packaging>
<name>EasySQL-API</name>
<name>00-EasySQL-API</name>
<description>EasySQL的接口部分。用于打包到公共项目的API中,避免项目过大。</description>
<url>https://github.com/CarmJos/EasySQL</url>
@@ -44,24 +37,27 @@
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/CarmJos/EasySQL/issues</url>
<url>${project.url}/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/CarmJos/EasySQL/actions/workflows/maven.yml</url>
<url>${project.url}/actions/workflows/maven.yml</url>
</ciManagement>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
@@ -76,7 +72,7 @@
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
</plugins>
</build>
@@ -0,0 +1,166 @@
package cc.carm.lib.easysql.api;
import cc.carm.lib.easysql.api.function.SQLExceptionHandler;
import cc.carm.lib.easysql.api.function.SQLFunction;
import cc.carm.lib.easysql.api.function.SQLHandler;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.sql.SQLException;
import java.util.UUID;
/**
* SQLAction 是用于承载SQL语句并进行处理、返回的基本类。
*
* <ul>
* <li>同步执行 {@link #execute()}, {@link #execute(SQLFunction, SQLExceptionHandler)}
* <br>同步执行方法中有会抛出异常的方法与不抛出异常的方法,
* <br>若选择不抛出异常,则返回值可能为空,需要特殊处理。</li>
*
* <li>异步执行 {@link #executeAsync(SQLHandler, SQLExceptionHandler)}
* <br>异步执行时将提供成功与异常两种处理方式
* <br>可自行选择是否对数据或异常进行处理
* <br>默认的异常处理器为 {@link #defaultExceptionHandler()}</li>
* </ul>
*
* @param <T> 需要返回的类型
* @author CarmJos
* @since 0.0.1
*/
public interface SQLAction<T> {
/**
* 得到该Action的UUID
*
* @return UUID
*/
@NotNull UUID getActionUUID();
/**
* 得到短八位格式的UUID
*
* @return UUID(8)
*/
@NotNull String getShortID();
/**
* 得到该Action的创建时间
*
* @return 创建时间
*/
long getCreateTime();
/**
* 得到该Action所要执行的源SQL语句
*
* @return 源SQL语句
*/
@NotNull String getSQLContent();
/**
* 得到承载该Action的对应{@link SQLManager}
*
* @return {@link SQLManager}
*/
@NotNull SQLManager getManager();
/**
* 执行该Action对应的SQL语句
*
* @return 指定数据类型
* @throws SQLException 当SQL操作出现问题时抛出
*/
@NotNull T execute() throws SQLException;
/**
* 执行语句并返回值
*
* @param exceptionHandler 异常处理器 默认为 {@link #defaultExceptionHandler()}
* @return 指定类型数据
*/
@Nullable
default T execute(@Nullable SQLExceptionHandler exceptionHandler) {
return execute(t -> t, exceptionHandler);
}
/**
* 执行语句并处理返回值
*
* @param function 处理方法
* @param <R> 需要返回的内容
* @return 指定类型数据
* @throws SQLException 当SQL操作出现问题时抛出
*/
@Nullable
default <R> R executeFunction(@NotNull SQLFunction<T, R> function) throws SQLException {
try {
T value = execute();
return function.apply(value);
} catch (SQLException exception) {
throw new SQLException(exception);
}
}
/**
* 执行语句并处理返回值
*
* @param function 处理方法
* @param exceptionHandler 异常处理器 默认为 {@link #defaultExceptionHandler()}
* @param <R> 需要返回的内容
* @return 指定类型数据
*/
@Nullable
default <R> R execute(@NotNull SQLFunction<T, R> function,
@Nullable SQLExceptionHandler exceptionHandler) {
try {
return executeFunction(function);
} catch (SQLException exception) {
handleException(exceptionHandler, exception);
return null;
}
}
/**
* 异步执行SQL语句,采用默认异常处理,无需返回值。
*/
default void executeAsync() {
executeAsync(null);
}
/**
* 异步执行SQL语句
*
* @param success 成功时的操作
*/
default void executeAsync(@Nullable SQLHandler<T> success) {
executeAsync(success, null);
}
/**
* 异步执行SQL语句
*
* @param success 成功时的操作
* @param failure 异常处理器 默认为 {@link SQLAction#defaultExceptionHandler()}
*/
void executeAsync(@Nullable SQLHandler<T> success,
@Nullable SQLExceptionHandler failure);
default void handleException(@Nullable SQLExceptionHandler handler, SQLException exception) {
if (handler == null) handler = defaultExceptionHandler();
handler.accept(exception, this);
}
/**
* @return 默认的异常处理器
*/
default SQLExceptionHandler defaultExceptionHandler() {
return (exception, action) -> {
getManager().getLogger().severe("Error when execute [" + action.getSQLContent() + "]");
getManager().getLogger().severe(exception.getLocalizedMessage());
exception.printStackTrace();
};
}
}
@@ -0,0 +1,21 @@
package cc.carm.lib.easysql.api;
import org.jetbrains.annotations.NotNull;
/**
* SQLBuilder 是用于构建SQL语句以生成SQLAction执行操作的中间类。
* <br>其连接了{@link SQLManager} 与 {@link SQLAction} ,避免大量的代码堆积
* <br>也是本接口的核心功能所在
*
* @author CarmJos
*/
public interface SQLBuilder {
/**
* 得到承载该Builder的对应{@link SQLManager}
*
* @return {@link SQLManager}
*/
@NotNull SQLManager getManager();
}
@@ -0,0 +1,167 @@
package cc.carm.lib.easysql.api;
import cc.carm.lib.easysql.api.action.PreparedSQLUpdateAction;
import cc.carm.lib.easysql.api.action.PreparedSQLUpdateBatchAction;
import cc.carm.lib.easysql.api.action.SQLUpdateAction;
import cc.carm.lib.easysql.api.action.SQLUpdateBatchAction;
import cc.carm.lib.easysql.api.builder.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.function.Supplier;
import java.util.logging.Logger;
public interface SQLManager {
Logger getLogger();
boolean isDebugMode();
void setDebugMode(@NotNull Supplier<@NotNull Boolean> debugMode);
default void setDebugMode(boolean enable) {
setDebugMode(() -> enable);
}
/**
* 得到连接池源
*
* @return DataSource
*/
@NotNull DataSource getDataSource();
/**
* 得到一个数据库连接实例
*
* @return Connection
* @throws SQLException 见 {@link DataSource#getConnection()}
*/
@NotNull Connection getConnection() throws SQLException;
/**
* 得到正使用的查询。
*
* @return 查询列表
*/
@NotNull Map<UUID, SQLQuery> getActiveQuery();
/**
* 执行一条不需要返回结果的SQL语句(多用于UPDATE、REPLACE、DELETE方法)
* 该方法使用 Statement 实现,请注意SQL注入风险!
*
* @param sql SQL语句内容
* @return 更新的行数
* @see SQLUpdateAction
*/
@Nullable Integer executeSQL(String sql);
/**
* 执行一条不需要返回结果的预处理SQL更改(UPDATE、REPLACE、DELETE)
*
* @param sql SQL语句内容
* @param params SQL语句中 ? 的对应参数
* @return 更新的行数
* @see PreparedSQLUpdateAction
*/
@Nullable Integer executeSQL(String sql, Object[] params);
/**
* 执行多条不需要返回结果的SQL更改(UPDATE、REPLACE、DELETE)
*
* @param sql SQL语句内容
* @param paramsBatch SQL语句中对应?的参数组
* @return 对应参数返回的行数
* @see PreparedSQLUpdateBatchAction
*/
@Nullable List<Integer> executeSQLBatch(String sql, Iterable<Object[]> paramsBatch);
/**
* 执行多条不需要返回结果的SQL。
* 该方法使用 Statement 实现,请注意SQL注入风险!
*
* @param sql SQL语句内容
* @param moreSQL 更多SQL语句内容
* @return 对应参数返回的行数
* @see SQLUpdateBatchAction
*/
@Nullable List<Integer> executeSQLBatch(@NotNull String sql, String... moreSQL);
/**
* 执行多条不需要返回结果的SQL。
*
* @param sqlBatch SQL语句内容
* @return 对应参数返回的行数
*/
@Nullable List<Integer> executeSQLBatch(@NotNull Iterable<String> sqlBatch);
/**
* 在库中创建一个表
*
* @param tableName 表名
* @return {@link TableCreateBuilder}
*/
TableCreateBuilder createTable(@NotNull String tableName);
/**
* 新建一个查询
*
* @return {@link QueryBuilder}
*/
QueryBuilder createQuery();
/**
* 创建一条插入操作
*
* @param tableName 目标表名
* @return {@link InsertBuilder}
*/
InsertBuilder<PreparedSQLUpdateAction> createInsert(@NotNull String tableName);
/**
* 创建支持多组数据的插入操作
*
* @param tableName 目标表名
* @return {@link InsertBuilder}
*/
InsertBuilder<PreparedSQLUpdateBatchAction> createInsertBatch(@NotNull String tableName);
/**
* 创建一条替换操作
*
* @param tableName 目标表名
* @return {@link ReplaceBuilder}
*/
ReplaceBuilder<PreparedSQLUpdateAction> createReplace(@NotNull String tableName);
/**
* 创建支持多组数据的替换操作
*
* @param tableName 目标表名
* @return {@link ReplaceBuilder}
*/
ReplaceBuilder<PreparedSQLUpdateBatchAction> createReplaceBatch(@NotNull String tableName);
/**
* 创建更新操作
*
* @param tableName 目标表名
* @return {@link UpdateBuilder}
*/
UpdateBuilder createUpdate(@NotNull String tableName);
/**
* 创建删除操作
*
* @param tableName 目标表名
* @return {@link DeleteBuilder}
*/
DeleteBuilder createDelete(@NotNull String tableName);
}
@@ -0,0 +1,52 @@
package cc.carm.lib.easysql.api;
import cc.carm.lib.easysql.api.SQLManager;
import cc.carm.lib.easysql.api.action.query.PreparedQueryAction;
import cc.carm.lib.easysql.api.action.query.QueryAction;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public interface SQLQuery extends AutoCloseable {
/**
* 获取该查询创建的时间
*
* @return 创建时间
*/
long getExecuteTime();
/**
* 得到承载该SQLQuery的对应{@link SQLManager}
*
* @return {@link SQLManager}
*/
SQLManager getManager();
/**
* 得到承载该SQLQuery的对应{@link QueryAction}
*
* @return {@link QueryAction} 或 {@link PreparedQueryAction}
*/
QueryAction getAction();
ResultSet getResultSet();
/**
* 得到设定的SQL语句
*
* @return SQL语句
*/
String getSQLContent();
/**
* 关闭所有内容
*/
void close();
Statement getStatement();
Connection getConnection();
}
@@ -0,0 +1,23 @@
package cc.carm.lib.easysql.api.action;
import org.jetbrains.annotations.Nullable;
public interface PreparedSQLUpdateAction extends SQLUpdateAction {
/**
* 设定SQL语句中所有 ? 对应的参数
*
* @param params 参数内容
* @return {@link PreparedSQLUpdateAction}
*/
PreparedSQLUpdateAction setParams(Object... params);
/**
* 设定SQL语句中所有 ? 对应的参数
*
* @param params 参数内容
* @return {@link PreparedSQLUpdateAction}
*/
PreparedSQLUpdateAction setParams(@Nullable Iterable<Object> params);
}
@@ -0,0 +1,44 @@
package cc.carm.lib.easysql.api.action;
import cc.carm.lib.easysql.api.SQLAction;
import java.util.List;
public interface PreparedSQLUpdateBatchAction extends SQLAction<List<Integer>> {
/**
* 设定多组SQL语句中所有 ? 对应的参数
*
* @param allParams 所有参数内容
* @return {@link PreparedSQLUpdateBatchAction}
*/
PreparedSQLUpdateBatchAction setAllParams(Iterable<Object[]> allParams);
/**
* 添加一组SQL语句中所有 ? 对应的参数
*
* @param params 参数内容
* @return {@link PreparedSQLUpdateBatchAction}
*/
PreparedSQLUpdateBatchAction addParamsBatch(Object... params);
/**
* 设定自增主键的序列
*
* @param keyColumnIndex 自增主键的序列
* <br>若该值 0,则 {@link #execute()} 返回自增主键数值
* <br>若该值 ≤ 0,则 {@link #execute()} 返回变更的行数
* @return {@link PreparedSQLUpdateBatchAction}
*/
PreparedSQLUpdateBatchAction setKeyIndex(int keyColumnIndex);
/**
* 默认主键序列的数值为 -1 (≤0) ,即默认返回发生变更的行数。
*
* @return 默认主键序列
*/
default PreparedSQLUpdateBatchAction defaultKeyIndex() {
return setKeyIndex(-1); // will return changed lines number
}
}
@@ -0,0 +1,27 @@
package cc.carm.lib.easysql.api.action;
import cc.carm.lib.easysql.api.SQLAction;
public interface SQLUpdateAction extends SQLAction<Integer> {
/**
* 设定自增主键的序列
*
* @param keyColumnIndex 自增主键的序列
* <br>若该值 0,则 {@link #execute()} 返回自增主键数值
* <br>若该值 ≤ 0,则 {@link #execute()} 返回变更的行数
* @return {@link SQLUpdateAction}
*/
SQLUpdateAction setKeyIndex(int keyColumnIndex);
/**
* 默认主键序列的数值为 -1 (≤0) ,即默认返回发生变更的行数。
*
* @return 默认主键序列
*/
default SQLUpdateAction defaultKeyIndex() {
return setKeyIndex(-1); // will return changed lines number
}
}
@@ -0,0 +1,35 @@
package cc.carm.lib.easysql.api.action;
import cc.carm.lib.easysql.api.SQLAction;
import cc.carm.lib.easysql.api.function.SQLExceptionHandler;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public interface SQLUpdateBatchAction extends SQLAction<List<Integer>> {
/**
* 添加一条批量执行的SQL语句
*
* @param sql SQL语句
* @return {@link SQLUpdateBatchAction}
*/
SQLUpdateBatchAction addBatch(@NotNull String sql);
List<String> getSQLContents();
@Override
default SQLExceptionHandler defaultExceptionHandler() {
return (exception, action) -> {
getManager().getLogger().severe("Error when execute SQLs : ");
int i = 1;
for (String content : getSQLContents()) {
getManager().getLogger().severe("#" + i + " [" + content + "]");
i++;
}
getManager().getLogger().severe(exception.getLocalizedMessage());
exception.printStackTrace();
};
}
}

Some files were not shown because too many files have changed in this diff Show More