1
mirror of https://github.com/CarmJos/EasySQL.git synced 2026-06-04 15:28:20 +08:00

feat(sql): 预备支持事务(v0.5.0)

This commit is contained in:
2022-10-16 23:49:53 +08:00
parent a9a7543e65
commit a88843f768
30 changed files with 429 additions and 69 deletions
+11 -11
View File
@@ -84,8 +84,8 @@ public class EasySQLDemo {
public void sqlQuery(SQLManager sqlManager) {
// 同步SQL查询
try (SQLQuery query = sqlManager.createQuery()
.inTable("users") // 在users表中查询
.selectColumns("id", "name") // 选中 id 与 name列
.fromTable("users") // 在users表中查询
.select("id", "name") // 选中 id 与 name列
.addCondition("age", ">", 18) // 限定 age 要大于5
.addCondition("email", null) // 限定查询 email 字段为空
.addNotNullCondition("phone") // 限定 phone 字段不为空
@@ -101,10 +101,10 @@ public class EasySQLDemo {
}
UUID userUUID = sqlManager.createQuery()
.inTable("users") // 在users表中查询
.selectColumns("uuid")
.fromTable("users") // 在users表中查询
.select("uuid")
.addCondition("id", 5) // 限定 id 为 5
.setLimit(1) // 只取出一个数据
.limit(1) // 只取出一个数据
.build().execute(query -> {
//可以直接进行数据处理
ResultSet result = query.getResultSet();
@@ -118,9 +118,9 @@ public class EasySQLDemo {
public void sqlQueryAsync(SQLManager sqlManager) {
// 异步SQL查询
sqlManager.createQuery()
.inTable("users") // 在users表中查询
.fromTable("users") // 在users表中查询
.addCondition("id", 5) // 限定 id 为 5
.setLimit(1) // 只取出一个数据
.limit(1) // 只取出一个数据
.build().executeAsync(success -> {
ResultSet resultSet = success.getResultSet();
if (resultSet != null && resultSet.next()) {
@@ -137,8 +137,8 @@ public class EasySQLDemo {
public void sqlInsert(SQLManager sqlManager) {
// 同步SQL插入 (不使用try-catch的情况下,返回的数值可能为空。)
int id = sqlManager.createInsert("users")
.setColumnNames("username", "phone", "email", "registerTime")
.setParams("CarmJos", "18888888888", "carm@carm.cc", TimeDateUtils.getCurrentTime())
.columns("username", "phone", "email", "registerTime")
.params("CarmJos", "18888888888", "carm@carm.cc", TimeDateUtils.getCurrentTime())
.returnGeneratedKey() // 设定在后续返回自增主键
.execute((exception, action) -> {
// 处理异常
@@ -148,8 +148,8 @@ public class EasySQLDemo {
try {
int userID = sqlManager.createInsert("users")
.setColumnNames("username", "phone", "email", "registerTime")
.setParams("CarmJos", "18888888888", "carm@carm.cc", TimeDateUtils.getCurrentTime())
.columns("username", "phone", "email", "registerTime")
.params("CarmJos", "18888888888", "carm@carm.cc", TimeDateUtils.getCurrentTime())
.returnGeneratedKey().execute();
System.out.println("新用户的ID为 " + userID);
@@ -0,0 +1,12 @@
package cc.carm.lib.easysql;
import cc.carm.lib.easysql.api.action.SQLTransaction;
import java.sql.SQLException;
import java.util.function.Consumer;
public interface DemoTransaction {
SQLTransactionResult commitTransaction(Consumer<SQLTransaction> consumer);
}
@@ -12,9 +12,9 @@ public class QueryAsyncTest extends TestHandler {
public void onTest(SQLManager sqlManager) throws SQLException {
sqlManager.createQuery()
.inTable("test_user_table")
.fromTable("test_user_table")
.orderBy("id", false)
.setLimit(1)
.limit(1)
.build().executeAsync(query -> {
try {
Thread.sleep(1000L);
@@ -15,9 +15,9 @@ public class QueryCloseTest extends TestHandler {
public void onTest(SQLManager sqlManager) throws SQLException {
try (SQLQuery query = sqlManager.createQuery()
.inTable("test_user_table")
.fromTable("test_user_table")
.orderBy("id", false)
.setLimit(5)
.limit(5)
.build().execute()) {
ResultSet resultSet = query.getResultSet();
@@ -12,9 +12,9 @@ public class QueryFunctionTest extends TestHandler {
public void onTest(SQLManager sqlManager) throws SQLException {
Integer id_1 = sqlManager.createQuery()
.inTable("test_user_table")
.fromTable("test_user_table")
.orderBy("id", false)
.setLimit(1)
.limit(1)
.build().executeFunction(query -> {
try {
Thread.sleep(1000L);
@@ -15,9 +15,9 @@ public class QueryFutureTest extends TestHandler {
Future<Integer> future = sqlManager.createQuery()
.inTable("test_user_table")
.fromTable("test_user_table")
.orderBy("id", false)
.setLimit(1)
.limit(1)
.build().executeFuture((query) -> {
if (!query.getResultSet().next()) {
return -1;
@@ -13,9 +13,9 @@ public class QueryNotCloseTest extends TestHandler {
@Override
public void onTest(SQLManager sqlManager) throws SQLException {
SQLQuery query = sqlManager.createQuery()
.inTable("test_user_table")
.fromTable("test_user_table")
.orderBy("id", false)
.setLimit(5)
.limit(5)
.build().execute();
ResultSet resultSet = query.getResultSet();
@@ -26,7 +26,7 @@ public class SQLUpdateBatchTests extends TestHandler {
public void onTest(SQLManager sqlManager) throws SQLException {
List<Long> updates = sqlManager.createInsertBatch("test_user_table")
.setColumnNames("uuid", "username", "age")
.columns("uuid", "username", "age")
.setAllParams(generateParams())
.returnGeneratedKeys(Long.class)
.execute();
@@ -12,7 +12,7 @@ public class SQLUpdateReturnKeysTest extends SQLUpdateBatchTests {
@Override
public void onTest(SQLManager sqlManager) throws SQLException {
List<Integer> generatedKeys = sqlManager.createInsertBatch("test_user_table")
.setColumnNames("uuid", "username", "age")
.columns("uuid", "username", "age")
.setAllParams(generateParams())
.returnGeneratedKeys(Integer.class)
.execute();