You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
package config;
|
|
|
|
import org.hibernate.dialect.*;
|
|
|
|
import java.sql.Driver;
|
|
|
|
public enum DBType {
|
|
mysql5(com.mysql.cj.jdbc.Driver.class, MySQL5Dialect.class),
|
|
mysql55(com.mysql.cj.jdbc.Driver.class, MySQL55Dialect.class),
|
|
mysql57(com.mysql.cj.jdbc.Driver.class, MySQL57Dialect.class),
|
|
mysql8(com.mysql.cj.jdbc.Driver.class, MySQL8Dialect.class);
|
|
|
|
private Class<? extends Driver> driver;
|
|
private Class<? extends Dialect> dialect;
|
|
|
|
DBType(Class<? extends Driver> driver, Class<? extends Dialect> dialect) {
|
|
this.driver = driver;
|
|
this.dialect = dialect;
|
|
}
|
|
|
|
public Class<? extends Driver> getDriver() {
|
|
return driver;
|
|
}
|
|
|
|
public Class<? extends Dialect> getDialect() {
|
|
return dialect;
|
|
}
|
|
|
|
public String getUrl(String host, int port, String name) {
|
|
switch (DBType.valueOf(this.name())) {
|
|
case mysql5:
|
|
case mysql55:
|
|
case mysql57:
|
|
case mysql8:
|
|
return "jdbc:mysql://" + host + ":" + port + "/" + name + "?serverTimezone=GMT%2b8";
|
|
default:
|
|
throw new RuntimeException("NotFound type:" + this.name());
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|