Skip to content

Commit 704cbab

Browse files
committed
Merge remote-tracking branch 'origin/developing' into developing
# Conflicts: # chat2db-server/chat2db-server-domain/chat2db-server-domain-core/src/main/java/ai/chat2db/server/domain/core/impl/DlTemplateServiceImpl.java # chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/SystemController.java # chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/ai/ChatController.java # chat2db-server/pom.xml
2 parents bbca928 + a25fae6 commit 704cbab

112 files changed

Lines changed: 4403 additions & 275 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
6+
<parent>
7+
<groupId>ai.chat2db</groupId>
8+
<artifactId>chat2db-plugins</artifactId>
9+
<version>${revision}</version>
10+
<relativePath>../pom.xml</relativePath>
11+
</parent>
12+
<modelVersion>4.0.0</modelVersion>
13+
<artifactId>chat2b-mysql</artifactId>
14+
15+
<dependencies>
16+
<dependency>
17+
<groupId>ai.chat2db</groupId>
18+
<artifactId>chat2db-spi</artifactId>
19+
</dependency>
20+
</dependencies>
21+
</project>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package ai.chat2db.plugin.mysql;
2+
3+
import ai.chat2db.spi.DBManage;
4+
import ai.chat2db.spi.sql.SQLExecutor;
5+
import org.springframework.util.StringUtils;
6+
7+
import java.sql.SQLException;
8+
9+
public class MysqlDBManage implements DBManage {
10+
@Override
11+
public void connectDatabase(String database) {
12+
if (StringUtils.isEmpty(database)) {
13+
return;
14+
}
15+
try {
16+
SQLExecutor.getInstance().execute("use `" + database + "`;", null);
17+
} catch (SQLException e) {
18+
throw new RuntimeException(e);
19+
}
20+
}
21+
22+
@Override
23+
public void modifyDatabase(String databaseName, String newDatabaseName) {
24+
25+
}
26+
27+
@Override
28+
public void createDatabase(String databaseName) {
29+
30+
}
31+
32+
@Override
33+
public void dropDatabase(String databaseName) {
34+
35+
}
36+
37+
@Override
38+
public void createSchema(String databaseName, String schemaName) {
39+
40+
}
41+
42+
@Override
43+
public void dropSchema(String databaseName, String schemaName) {
44+
45+
}
46+
47+
@Override
48+
public void modifySchema(String databaseName, String schemaName, String newSchemaName) {
49+
50+
}
51+
52+
@Override
53+
public void dropTable(String databaseName, String schemaName, String tableName) {
54+
55+
}
56+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package ai.chat2db.plugin.mysql;
2+
3+
import ai.chat2db.spi.MetaData;
4+
import ai.chat2db.spi.jdbc.DefaultMetaService;
5+
import ai.chat2db.spi.sql.SQLExecutor;
6+
import jakarta.validation.constraints.NotEmpty;
7+
8+
import java.sql.SQLException;
9+
10+
public class MysqlMetaData extends DefaultMetaService implements MetaData {
11+
@Override
12+
public String tableDDL(@NotEmpty String databaseName, String schemaName, @NotEmpty String tableName) {
13+
String sql = "SHOW CREATE TABLE " + format(databaseName) + "."
14+
+ format( tableName);
15+
return SQLExecutor.getInstance().executeSql(sql, resultSet -> {
16+
try {
17+
if (resultSet.next()) {
18+
return resultSet.getString("Create Table");
19+
}
20+
} catch (SQLException e) {
21+
throw new RuntimeException(e);
22+
}
23+
return null;
24+
});
25+
}
26+
27+
public static String format(String tableName) {
28+
return "`" + tableName + "`";
29+
}
30+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package ai.chat2db.plugin.mysql;
2+
3+
import ai.chat2db.plugin.mysql.builder.DBConfigBuilder;
4+
import ai.chat2db.spi.DBManage;
5+
import ai.chat2db.spi.MetaData;
6+
import ai.chat2db.spi.Plugin;
7+
import ai.chat2db.spi.config.DBConfig;
8+
9+
public class MysqlPlugin implements Plugin {
10+
11+
@Override
12+
public DBConfig getDBConfig() {
13+
return DBConfigBuilder.buildDBConfig();
14+
}
15+
16+
@Override
17+
public MetaData getMetaData() {
18+
return new MysqlMetaData();
19+
}
20+
21+
@Override
22+
public DBManage getDBManage() {
23+
return null;
24+
}
25+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package ai.chat2db.plugin.mysql.builder;
2+
3+
import ai.chat2db.spi.config.DBConfig;
4+
import ai.chat2db.spi.config.DriverConfig;
5+
import com.google.common.collect.Lists;
6+
7+
public class DBConfigBuilder {
8+
9+
public static DBConfig buildDBConfig() {
10+
DBConfig dbConfig = new DBConfig();
11+
dbConfig.setName("Mysql");
12+
dbConfig.setDbType("MYSQL");
13+
14+
DriverConfig driverConfig = new DriverConfig();
15+
driverConfig.setJdbcDriver("mysql-connector-java-8.0.30.jar");
16+
driverConfig.setJdbcDriverClass("com.mysql.cj.jdbc.Driver");
17+
driverConfig.setDownloadJdbcDriverUrls(Lists.newArrayList("https://oss-chat2db.alibaba.com/lib/mysql-connector-java-8.0.30.jar"));
18+
driverConfig.setName(driverConfig.getJdbcDriver() + ":" + driverConfig.getJdbcDriverClass());
19+
dbConfig.setDefaultDriverConfig(driverConfig);
20+
21+
22+
DriverConfig driverConfig2 = new DriverConfig();
23+
driverConfig2.setJdbcDriver("mysql-connector-java-5.1.47.jar");
24+
driverConfig2.setJdbcDriverClass("com.mysql.jdbc.Driver");
25+
driverConfig2.setDownloadJdbcDriverUrls(Lists.newArrayList("https://oss-chat2db.alibaba.com/lib/mysql-connector-java-5.1.47.jar"));
26+
driverConfig2.setName(driverConfig.getJdbcDriver() + ":" + driverConfig.getJdbcDriverClass());
27+
28+
dbConfig.setDriverConfigList(Lists.newArrayList(driverConfig,driverConfig2));
29+
return dbConfig;
30+
}
31+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ai.chat2db.plugin.mysql.MysqlPlugin
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
6+
<parent>
7+
<groupId>ai.chat2db</groupId>
8+
<artifactId>chat2db-server-parent</artifactId>
9+
<version>${revision}</version>
10+
<relativePath>../pom.xml</relativePath>
11+
</parent>
12+
<modelVersion>4.0.0</modelVersion>
13+
<artifactId>chat2db-plugins</artifactId>
14+
<packaging>pom</packaging>
15+
16+
<modules>
17+
<module>chat2b-mysql</module>
18+
</modules>
19+
20+
</project>

chat2db-server/chat2db-server-domain/chat2db-server-domain-api/pom.xml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
<groupId>ai.chat2db</groupId>
1818
<artifactId>chat2db-server-tools-base</artifactId>
1919
</dependency>
20-
<dependency>
21-
<groupId>ai.chat2db</groupId>
22-
<artifactId>chat2db-server-domain-support</artifactId>
23-
</dependency>
20+
<!-- <dependency>-->
21+
<!-- <groupId>ai.chat2db</groupId>-->
22+
<!-- <artifactId>chat2db-server-domain-support</artifactId>-->
23+
<!-- </dependency>-->
2424
<dependency>
2525
<groupId>org.projectlombok</groupId>
2626
<artifactId>lombok</artifactId>
@@ -31,5 +31,9 @@
3131
<artifactId>hibernate-validator</artifactId>
3232
<scope>provided</scope>
3333
</dependency>
34+
<dependency>
35+
<groupId>ai.chat2db</groupId>
36+
<artifactId>chat2db-spi</artifactId>
37+
</dependency>
3438
</dependencies>
3539
</project>

chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/enums/AiSqlSourceEnum.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package ai.chat2db.server.domain.api.enums;
22

3-
import java.util.HashMap;
4-
import java.util.Map;
53

6-
import ai.chat2db.server.domain.support.dialect.MetaSchema;
74
import ai.chat2db.server.tools.base.enums.BaseEnum;
85

96
import lombok.Getter;
@@ -29,7 +26,6 @@ public enum AiSqlSourceEnum implements BaseEnum<String> {
2926

3027
final String description;
3128

32-
private static Map<AiSqlSourceEnum, MetaSchema> META_SCHEMA_MAP = new HashMap<>();
3329

3430
AiSqlSourceEnum(String description) {
3531
this.description = description;

chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/model/DataSource.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22

33
import java.time.LocalDateTime;
44
import java.util.List;
5-
import java.util.Map;
65

7-
import ai.chat2db.server.domain.support.model.KeyValue;
8-
import ai.chat2db.server.domain.support.model.SSHInfo;
9-
import ai.chat2db.server.domain.support.model.SSLInfo;
6+
7+
import ai.chat2db.spi.model.*;
108

119
import lombok.Data;
1210

0 commit comments

Comments
 (0)