Skip to content

Commit

Permalink
- 支持 SpringBoot3 以及 java17
Browse files Browse the repository at this point in the history
  • Loading branch information
xutengx committed Dec 7, 2023
1 parent 460e751 commit dc77c82
Show file tree
Hide file tree
Showing 53 changed files with 911 additions and 68 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ studentModel.findOrFail(8).bind("teachers").attach( 1, 2, 3 );
<groupId>com.github.gaarason.database-all</groupId>
<artifactId>database-spring-boot-starter</artifactId>
<version>{latest-version}</version>
<!-- <version>4.9.1</version> -->
<!-- <version>5.0.0</version> -->
</dependency>
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
boolean selectable() default true;

/**
* 是否插入/更新/条件使用, 当对应策略值为DEFAULT时, 取用
* 是否插入/更新/条件使用, 当对应策略值为DEFAULT(未配置)时, 取用本策略
*/
Class<? extends FieldStrategy> strategy() default FieldStrategy.NotNull.class;

Expand Down
2 changes: 1 addition & 1 deletion database-query-mysql/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.20.1</version>
<version>3.20.3</version>
<scope>runtime</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
gaarason.database.spring.boot.starter.configurations.GaarasonDatabaseAutoConfiguration
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlAnnotationTests extends AnnotationTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package gaarason.database.test;

import gaarason.database.test.parent.AsyncTests;
import gaarason.database.test.parent.NullTests;
import gaarason.database.test.utils.DatabaseTypeUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.BeforeClass;
Expand All @@ -16,9 +15,6 @@ public class MysqlAsyncTests extends AsyncTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlCollectionTests extends CollectionTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,8 @@ public class MysqlIncrementTypeTests extends IncrementTypeTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);

initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlJsonTests extends JsonTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlLocalDateTests extends LocalDateTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlNullTests extends NullTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlORMTests extends ORMTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlQueryBuilderTests extends QueryBuilderTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlRelationMorphTests extends RelationMorphTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlRelationTests extends RelationTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ public class MysqlScopeTests extends ScopeTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlSerializableTests extends SerializableTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ public class MysqlTransactionTests extends TransactionTests {

@BeforeClass
public static void beforeClass() throws IOException {
DatabaseTypeUtil.setDatabaseTypeToMysql();
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql.sql";
initSql = readToString(sqlFilename);
initSql = DatabaseTypeUtil.setDatabaseTypeToMysql();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ public static class Entity implements Serializable {
@Column(name = "datetime_column", strategy = FieldStrategy.Always.class)
private LocalDateTime datetimeColumn;

@Column(name = "timestamp_column", strategy = FieldStrategy.Always.class)
// 有部分版本的 mysql 不允许 时间字段为 null
// 所以就不用这个字段测试了
@Column(name = "timestamp_column", strategy = FieldStrategy.NotNull.class)
private Date timestampColumn;

private boolean isDeleted;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public void test() {
Assert.assertNull(entity.getDateColumn());
Assert.assertNull(entity.getTimeColumn());
Assert.assertNull(entity.getDatetimeColumn());
Assert.assertNull(entity.getTimestampColumn());
// Assert.assertNull(entity.getTimestampColumn());

NullTestModel.Entity forQuery = new NullTestModel.Entity();
forQuery.setId(id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import gaarason.database.contract.connection.GaarasonDataSource;
import gaarason.database.exception.SQLRuntimeException;
import gaarason.database.test.utils.DatabaseTypeUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.*;
import org.junit.runners.MethodSorters;
Expand Down Expand Up @@ -36,10 +37,12 @@ abstract public class BaseTests {

Map<TABLE, String[]> tableSql = new HashMap<>();
for (TABLE table : TABLE.values()) {
String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(
"file:", "") + "../../src/test/java/gaarason/database/test/init/mysql-"+table.name()+".sql";
// String sqlFilename = Thread.currentThread().getStackTrace()[1].getClass().getResource("/").toString().replace(

// String sqlFilename = Thread.currentThread().getStackTrace()[1].getClassName().replace(".","/") + "/../../src/test/java/gaarason/database/test/init/mysql-"+table.name()+".sql";
try {
tableSql.put(table, readToString(sqlFilename).split(";\n"));
String sqlFilename = BaseTests.class.getClassLoader().getResource("sql/mysql-"+table.name()+".sql").getFile();
tableSql.put(table, DatabaseTypeUtil.readToString(sqlFilename).split(";\n"));
} catch (IOException e) {
throw new RuntimeException(e);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package gaarason.database.test.utils;

import gaarason.database.DatabaseType;
import gaarason.database.test.MysqlAsyncTests;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

/**
* 数据库类型
Expand All @@ -18,12 +23,27 @@ public static DatabaseType getDatabaseType() {
return databaseType;
}

public static void setDatabaseTypeToMysql() {
public static String setDatabaseTypeToMysql() throws IOException {
databaseType = DatabaseType.MYSQL;
String sqlFilename = MysqlAsyncTests.class.getClassLoader().getResource("sql/mysql.sql").getFile();
return readToString(sqlFilename);
}

public static void setDatabaseTypeToMssql() {
public static String setDatabaseTypeToMssql() throws IOException {
databaseType = DatabaseType.MSSQL;
String sqlFilename = MysqlAsyncTests.class.getClassLoader().getResource("sql/mssql.sql").getFile();
return readToString(sqlFilename);
}

public static String readToString(String fileName) throws IOException {
String encoding = "UTF-8";
File file = new File(fileName);
file.setReadable(true);
Long fileLength = file.length();
byte[] fileContent = new byte[fileLength.intValue()];
FileInputStream in = new FileInputStream(file);
in.read(fileContent);
in.close();
return new String(fileContent, encoding);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ CREATE TABLE `null_test`
`time_column` time DEFAULT NULL COMMENT 'time类型字段',
`date_column` date DEFAULT NULL COMMENT 'date类型字段',
`datetime_column` datetime DEFAULT NULL COMMENT 'datetime类型字段',
`timestamp_column` timestamp DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp类型字段',
`timestamp_column` timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT 'timestamp类型字段',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1
Expand Down
47 changes: 47 additions & 0 deletions database-tests/database-spring-boot3-starter-test/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<artifactId>database-spring-boot3-starter-test</artifactId>

<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>com.github.gaarason</groupId>
<artifactId>database-common-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.gaarason</groupId>
<artifactId>database-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package gaarason.database.spring.boot.starter.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.util.concurrent.CountDownLatch;

@SpringBootApplication
@EnableTransactionManagement
public class TestApplication {
public static void main(String[] args) throws InterruptedException {
SpringApplication.run(TestApplication.class, args);
new CountDownLatch(1).await();
}
}
Loading

0 comments on commit dc77c82

Please sign in to comment.