Former-commit-id: 2b1174d23ba2b4f8520747d1605f77cb292a859d
master
wangbing 5 years ago
parent aca5fd93f5
commit 5ad642b2a3

@ -96,6 +96,12 @@
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.21.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle.driver</groupId>
<artifactId>odbc</artifactId>

@ -97,10 +97,12 @@ public enum FieldType {
public String toString() {
if (Boolean.name().equals(this.name())) {
return "Boolean";
} else if (Dict.name().equals(this.name())) {
return "Dict";
} else if (Byte.name().equals(this.name())) {
return "Byte";
} else if (Bytes.name().equals(this.name())) {
return "Byte[]";
} else if (Character.name().equals(this.name())) {
return "Character";
} else if (Short.name().equals(this.name())) {
return "Short";
} else if (Integer.name().equals(this.name())) {
@ -111,14 +113,12 @@ public enum FieldType {
return "Float";
} else if (Double.name().equals(this.name())) {
return "Double";
} else if (Character.name().equals(this.name())) {
return "Character";
} else if (Date.name().equals(this.name())) {
return "Date";
} else if (Bytes.name().equals(this.name())) {
return "Byte[]";
} else if (BigDecimal.name().equals(this.name())) {
return "BigDecimal";
} else if (Dict.name().equals(this.name())) {
return "Dict";
} else if (String_1.name().equals(this.name())) {
return "String_1";
} else if (String_10.name().equals(this.name())) {
@ -147,10 +147,12 @@ public enum FieldType {
public String javaType() {
if (Boolean.name().equals(this.name())) {
return "Boolean";
} else if (Dict.name().equals(this.name())) {
return "String";
} else if (Byte.name().equals(this.name())) {
return "Byte";
} else if (Bytes.name().equals(this.name())) {
return "Byte[]";
} else if (Character.name().equals(this.name())) {
return "Character";
} else if (Short.name().equals(this.name())) {
return "Short";
} else if (Integer.name().equals(this.name())) {
@ -161,14 +163,12 @@ public enum FieldType {
return "Float";
} else if (Double.name().equals(this.name())) {
return "Double";
} else if (Character.name().equals(this.name())) {
return "Character";
} else if (Date.name().equals(this.name())) {
return "Date";
} else if (Bytes.name().equals(this.name())) {
return "Byte[]";
} else if (BigDecimal.name().equals(this.name())) {
return "BigDecimal";
} else if (Dict.name().equals(this.name())) {
return "String";
} else if (String_1.name().equals(this.name())) {
return "String";
} else if (String_10.name().equals(this.name())) {
@ -199,6 +199,10 @@ public enum FieldType {
return "BIT";
} else if (Byte.name().equals(this.name())) {
return "TINYINT";
} else if (Bytes.name().equals(this.name())) {
return "BINARY";
} else if (Character.name().equals(this.name())) {
return "CHAR";
} else if (Short.name().equals(this.name())) {
return "SMALLINT";
} else if (Integer.name().equals(this.name())) {
@ -209,20 +213,16 @@ public enum FieldType {
return "FLOAT";
} else if (Double.name().equals(this.name())) {
return "DOUBLE";
} else if (Character.name().equals(this.name())) {
return "CHAR";
} else if (Date.name().equals(this.name())) {
return "TIMESTAMP";
} else if (Bytes.name().equals(this.name())) {
return "BINARY";
} else if (BigDecimal.name().equals(this.name())) {
return "DECIMAL";
return "NUMERIC";
} else if (Dict.name().equals(this.name())) {
return "VARCHAR";
} else if (String_1.name().equals(this.name())) {
return "CHAR";
} else if (String_10.name().equals(this.name())) {
return "CHAR";
} else if (Dict.name().equals(this.name())) {
return "VARCHAR";
} else if (String_var.name().equals(this.name())) {
return "VARCHAR";
} else if (String_var50.name().equals(this.name())) {
@ -242,6 +242,5 @@ public enum FieldType {
} else {
return "";
}
}
}

@ -10,8 +10,14 @@ import xyz.wbsite.dbtool.javafx.po.Module;
import xyz.wbsite.dbtool.javafx.po.Project;
import xyz.wbsite.dbtool.javafx.po.Table;
import xyz.wbsite.dbtool.javafx.tool.Tool;
import xyz.wbsite.dbtool.web.frame.utils.FileUtil;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.HashMap;
import java.util.concurrent.Callable;
@ -610,6 +616,7 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), "MapperUtil.java"), option + "/java/frame/utils/MapperUtil.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), "MD5Util.java"), option + "/java/frame/utils/MD5Util.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), "ProcessUtil.java"), option + "/java/frame/utils/ProcessUtil.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), "ProcessUtil.java"), option + "/java/frame/utils/ProcessUtil.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), "ResponseUtil.java"), option + "/java/frame/utils/ResponseUtil.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), "RSAUtil.java"), option + "/java/frame/utils/RSAUtil.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), "StringUtil.java"), option + "/java/frame/utils/StringUtil.java", ctx);
@ -664,11 +671,6 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application-prod.properties"), option + "/resources/application-prod.ftl", ctx);
Tool.outputResource(option + "/resources/logback-spring.xml", Tool.createFile(root.getAbsolutePath(), "logback-spring.xml"));
if (DataBase.Oracle == dataBase) {
File lib = Tool.createPath(root.getAbsolutePath(), "lib");
Tool.outputResource(option + "/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib.getAbsolutePath(), "ojdbc7-12.1.0.2.jar"));
}
File dbtool = Tool.createPath(root.getAbsolutePath(), "dbtool");
{
XmlManager xmlManager = ManagerFactory.getXmlManager();
@ -686,6 +688,38 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), "ALL_TABLE.sql"), option + "/resources/dbtool/tableAll.ftl", ctx);
}
if (DataBase.Oracle == dataBase) {
File lib = Tool.createPath(root.getAbsolutePath(), "lib");
Tool.outputResource(option + "/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib.getAbsolutePath(), "ojdbc7-12.1.0.2.jar"));
}
if (DataBase.SQLite == dataBase) {
File dbFile = Tool.createFile(root.getAbsolutePath(), project.getProjectName() + ".db");
Connection connection = null;
Statement statement = null;
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:" + dbFile.getAbsolutePath());
statement = connection.createStatement();
for (Module module : project.getModules()) {
File tableDir = Tool.createPath(dbtool.getAbsolutePath(), module.getModuleName() + "_table");
File file = Tool.createFile(tableDir.getAbsolutePath(), "ALL_TABLE.sql");
String string = FileUtil.readFileToString(file);
statement.execute(string);
}
} catch (ClassNotFoundException | SQLException | IOException e) {
e.printStackTrace();
} finally {
try {
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
{
File system = Tool.createPath(dbtool.getAbsolutePath(), "system");
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), "ALL_TABLE.sql"), option + "/resources/dbtool/system/ALL_TABLE.sql", ctx);

@ -18,7 +18,6 @@ public abstract class AbstractDBmapper {
return mDataBase;
}
public abstract String getDataBaseType(FieldType type,int lenght);
public abstract String getDataBaseType(FieldType type);
abstract String getFieldSql(Field field);
public abstract FieldType getType(String type, int lenght, int precision, int scale);

@ -9,51 +9,6 @@ public class MySQLDBmapper extends AbstractDBmapper {
super(mDataBase);
}
@Override
public String getDataBaseType(FieldType type, int lenght) {
if (FieldType.Boolean.name().equals(type.name())) {
return "BIT";
} else if (FieldType.Byte.name().equals(type.name())) {
return "TINYINT";
} else if (FieldType.Short.name().equals(type.name())) {
return "SMALLINT";
} else if (FieldType.Integer.name().equals(type.name())) {
return "INTEGER";
} else if (FieldType.Long.name().equals(type.name())) {
return "NUMERIC";
} else if (FieldType.Float.name().equals(type.name())) {
return "REAL";
} else if (FieldType.Double.name().equals(type.name())) {
return "FLOAT";
} else if (FieldType.Character.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_1.name().equals(type.name())) {
return "CAHR";
} else if (FieldType.String_10.name().equals(type.name())) {
return "CAHR";
} else if (FieldType.String_var.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var50.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var100.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var255.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var2500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var4000.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.Date.name().equals(type.name())) {
return "DATE";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else {
return "";
}
}
@Override
public String getFieldSql(Field field) {
StringBuffer sb = new StringBuffer("");

@ -70,51 +70,6 @@ public class OracleDBmapper extends AbstractDBmapper {
super(mDataBase);
}
@Override
public String getDataBaseType(FieldType type, int lenght) {
if (FieldType.Boolean.name().equals(type.name())) {
return "CHAR";
} else if (FieldType.Byte.name().equals(type.name())) {
return "NUMBER";
} else if (FieldType.Short.name().equals(type.name())) {
return "NUMBER";
} else if (FieldType.Integer.name().equals(type.name())) {
return "NUMBER";
} else if (FieldType.Long.name().equals(type.name())) {
return "NUMBER";
} else if (FieldType.Float.name().equals(type.name())) {
return "NUMBER";
} else if (FieldType.Double.name().equals(type.name())) {
return "NUMBER";
} else if (FieldType.Date.name().equals(type.name())) {
return "TIMESTAMP";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else if (FieldType.String_1.name().equals(type.name())) {
return "CHAR";
} else if (FieldType.String_10.name().equals(type.name())) {
return "CHAR";
} else if (FieldType.String_var.name().equals(type.name())) {
return "VARCHAR2";
} else if (FieldType.String_var50.name().equals(type.name())) {
return "VARCHAR2";
} else if (FieldType.String_var100.name().equals(type.name())) {
return "VARCHAR2";
} else if (FieldType.String_var255.name().equals(type.name())) {
return "VARCHAR2";
} else if (FieldType.String_var500.name().equals(type.name())) {
return "VARCHAR2";
} else if (FieldType.String_var2500.name().equals(type.name())) {
return "VARCHAR2";
} else if (FieldType.String_var4000.name().equals(type.name())) {
return "VARCHAR2";
} else if (FieldType.String_super.name().equals(type.name())) {
//Oracle中LONG最大支持2G字节
return "LONG";
}
return "";
}
@Override
public String getDataBaseType(FieldType type) {
if (FieldType.Boolean.name().equals(type.name())) {

@ -9,51 +9,6 @@ public class SQLiteDBmapper extends AbstractDBmapper {
super(mDataBase);
}
@Override
public String getDataBaseType(FieldType type, int lenght) {
if (FieldType.Boolean.name().equals(type.name())) {
return "BIT";
} else if (FieldType.Byte.name().equals(type.name())) {
return "TINYINT";
} else if (FieldType.Short.name().equals(type.name())) {
return "SMALLINT";
} else if (FieldType.Integer.name().equals(type.name())) {
return "INTEGER";
} else if (FieldType.Long.name().equals(type.name())) {
return "NUMERIC";
} else if (FieldType.Float.name().equals(type.name())) {
return "REAL";
} else if (FieldType.Double.name().equals(type.name())) {
return "FLOAT";
} else if (FieldType.Character.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_1.name().equals(type.name())) {
return "CAHR";
} else if (FieldType.String_10.name().equals(type.name())) {
return "CAHR";
} else if (FieldType.String_var.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var50.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var100.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var255.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var2500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var4000.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.Date.name().equals(type.name())) {
return "DATE";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else {
return "";
}
}
@Override
public String getFieldSql(Field field) {
StringBuffer sb = new StringBuffer("");
@ -62,27 +17,29 @@ public class SQLiteDBmapper extends AbstractDBmapper {
FieldType type = field.getFieldType();
if (FieldType.Boolean.name().equals(type.name())) {
sb.append("TINYINT(1)");
} else if (FieldType.Dict.name().equals(type.name())) {
sb.append("VARCHAR(10)");
sb.append("BOOLEAN");
} else if (FieldType.Byte.name().equals(type.name())) {
sb.append("TINYINT(3)");
sb.append("TINYINT");
} else if (FieldType.Bytes.name().equals(type.name())) {
sb.append("BLOB");
} else if (FieldType.Character.name().equals(type.name())) {
sb.append("CHARACTER(1)");
} else if (FieldType.Short.name().equals(type.name())) {
sb.append("SMALLINT(5)");
sb.append("SMALLINT");
} else if (FieldType.Integer.name().equals(type.name())) {
sb.append("INTEGER(10)");
sb.append("MEDIUMINT");
} else if (FieldType.Long.name().equals(type.name())) {
sb.append("BIGINT(20)");
sb.append("BIGINT");
} else if (FieldType.Float.name().equals(type.name())) {
sb.append("FLOAT");
} else if (FieldType.Double.name().equals(type.name())) {
sb.append("DOUBLE");
} else if (FieldType.Date.name().equals(type.name())) {
sb.append("DATETIME");
} else if (FieldType.Bytes.name().equals(type.name())) {
sb.append("BLOB");
} else if (FieldType.Character.name().equals(type.name())) {
sb.append("CHAR(1)");
} else if (FieldType.Dict.name().equals(type.name())) {
sb.append("VARCHAR(10)");
} else if (FieldType.BigDecimal.name().equals(type.name())) {
sb.append("INTEGER");
} else if (FieldType.String_1.name().equals(type.name())) {
sb.append("CHAR(1)");
} else if (FieldType.String_10.name().equals(type.name())) {
@ -99,39 +56,25 @@ public class SQLiteDBmapper extends AbstractDBmapper {
} else if (FieldType.String_var500.name().equals(type.name())) {
sb.append("VARCHAR(500)");
} else if (FieldType.String_var2500.name().equals(type.name())) {
sb.append("VARCHAR(2500)");
sb.append("TEXT");
} else if (FieldType.String_var4000.name().equals(type.name())) {
sb.append("VARCHAR(4000)");
sb.append("TEXT");
} else if (FieldType.String_super.name().equals(type.name())) {
sb.append("TEXT");
}
if (!field.getIsSystem() && field.getIsMust() && (field.getDefaultValue() == null || field.getDefaultValue().toUpperCase().equals("NULL"))) {
sb.append(" NOT NULL");
} else if (!field.getIsSystem() && field.getIsMust() && field.getDefaultValue() != null && !field.getDefaultValue().toUpperCase().equals("NULL")) {
if (field.getFieldType().name().contains("String")) {//默认字符
sb.append(" NOT NULL").append(" DEFAULT '" + field.getDefaultValue() + "'");
} else {//不是字符就是数字,目前只考虑两张情况
sb.append(" NOT NULL").append(" DEFAULT " + field.getDefaultValue() + "");
}
} else if (field.getIsSystem() && field.getFieldName().equals("ID")) {
sb.append(" NOT NULL");
sb.append(" PRIMARY KEY NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("ROW_VERSION")) {
sb.append(" NOT NULL").append(" DEFAULT 0");
sb.append(" NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("IS_DELETED")) {
sb.append(" NOT NULL").append(" DEFAULT 0");
sb.append(" NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("CREATE_BY")) {
sb.append(" NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("CREATE_TIME")) {
sb.append(" NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("LAST_UPDATE_BY")) {
sb.append(" DEFAULT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("LAST_UPDATE_TIME")) {
sb.append(" DEFAULT NULL");
}
if (field.getFieldComment() != null) {
sb.append(" COMMENT '" + field.getFieldComment() + "'");
}
return sb.toString();
}
@ -144,25 +87,25 @@ public class SQLiteDBmapper extends AbstractDBmapper {
@Override
public String getDataBaseType(FieldType type) {
if (FieldType.Boolean.name().equals(type.name())) {
return "TINYINT";
return "BOOLEAN";
} else if (FieldType.Byte.name().equals(type.name())) {
return "TINYINT";
} else if (FieldType.Short.name().equals(type.name())) {
return "SMALLINT";
} else if (FieldType.Integer.name().equals(type.name())) {
return "INTEGER";
return "MEDIUMINT";
} else if (FieldType.Long.name().equals(type.name())) {
return "NUMERIC";
return "BIGINT";
} else if (FieldType.Float.name().equals(type.name())) {
return "REAL";
} else if (FieldType.Double.name().equals(type.name())) {
return "FLOAT";
} else if (FieldType.Double.name().equals(type.name())) {
return "DOUBLE";
} else if (FieldType.Character.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_1.name().equals(type.name())) {
return "CHAR";
return "CHARACTER";
} else if (FieldType.String_10.name().equals(type.name())) {
return "CHAR";
return "CHARACTER";
} else if (FieldType.String_var.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var50.name().equals(type.name())) {
@ -174,11 +117,11 @@ public class SQLiteDBmapper extends AbstractDBmapper {
} else if (FieldType.String_var500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var2500.name().equals(type.name())) {
return "VARCHAR";
return "TEXT";
} else if (FieldType.String_var4000.name().equals(type.name())) {
return "VARCHAR";
return "TEXT";
} else if (FieldType.Date.name().equals(type.name())) {
return "DATETIME";
return "DATE";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else {
@ -187,50 +130,7 @@ public class SQLiteDBmapper extends AbstractDBmapper {
}
@Override
public FieldType getType(String type, int lenght, int precision, int scale) {
if ("bigint".equals(type)) {
return FieldType.Long;
} else if ("varchar".equals(type) && lenght == 50) {
return FieldType.String_var50;
} else if ("varchar".equals(type) && lenght == 100) {
return FieldType.String_var100;
} else if ("varchar".equals(type) && lenght == 255) {
return FieldType.String_var255;
} else if ("varchar".equals(type) && lenght == 500) {
return FieldType.String_var500;
} else if ("varchar".equals(type) && lenght == 2500) {
return FieldType.String_var2500;
} else if ("varchar".equals(type) && lenght == 4000) {
return FieldType.String_var4000;
} else if ("varchar".equals(type)) {
return FieldType.String_var;
} else if ("date".equals(type)) {
return FieldType.Date;
} else if ("datetime".equals(type)) {
return FieldType.Date;
} else if ("timestamp".equals(type)) {
return FieldType.Date;
} else if ("char".equals(type) && lenght == 1) {
return FieldType.String_1;
} else if ("char".equals(type) && lenght == 10) {
return FieldType.String_10;
} else if ("char".equals(type)) {
return FieldType.String_var;
} else if ("tinyint".equals(type)) {
return FieldType.Integer;
} else if ("smallint".equals(type)) {
return FieldType.Integer;
} else if ("mediumint".equals(type)) {
return FieldType.Integer;
} else if ("int".equals(type)) {
return FieldType.Integer;
} else if ("bigint".equals(type)) {
return FieldType.Long;
} else if ("float".equals(type)) {
return FieldType.Float;
} else if ("double".equals(type)) {
return FieldType.Double;
}
public FieldType getType(String type, int length, int precision, int scale) {
return FieldType.String_var50;
}
}

@ -1,9 +1,21 @@
package xyz.wbsite.dbtool.web.frame.utils;
import java.io.*;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileUtil {
public static String readFileToString(File file) throws IOException {
byte[] bytes = readFileToByteArray(file);
return new String(bytes, "UTF-8");
}
public static byte[] readFileToByteArray(File file) throws IOException {
InputStream in = openInputStream(file);
Throwable var2 = null;

@ -4,6 +4,11 @@ import java.io.*;
public class FileUtil {
public static String readFileToString(File file) throws IOException {
byte[] bytes = readFileToByteArray(file);
return new String(bytes, "UTF-8");
}
public static byte[] readFileToByteArray(File file) throws IOException {
InputStream in = openInputStream(file);
Throwable var2 = null;

@ -8,6 +8,8 @@
<sql id="table">"${module.modulePrefix?default("")}${table.tableName}"</sql>
<#elseif dataBase='MySQL'>
<sql id="table">`${module.modulePrefix?default("")}${table.tableName}`</sql>
<#elseif dataBase='SQLite'>
<sql id="table">${module.modulePrefix?default("")}${table.tableName}</sql>
</#if>
<sql id="entityColumnList">
@ -15,6 +17,8 @@
<#list table.fields as f>"${f.fieldName}"<#if f_has_next>,</#if></#list>
<#elseif dataBase='MySQL'>
<#list table.fields as f>`${f.fieldName}`<#if f_has_next>,</#if></#list>
<#elseif dataBase='SQLite'>
<#list table.fields as f>${f.fieldName}<#if f_has_next>,</#if></#list>
</#if>
</sql>
@ -34,111 +38,164 @@
"IS_DELETED" = 0
<#elseif dataBase='MySQL'>
`IS_DELETED` = 0
<#elseif dataBase='SQLite'>
IS_DELETED = 0
</#if>
<#list table.fields as f>
<#if f.isQuery>
<#if dataBase == 'Oracle'>
<#if f.fieldType.javaType() == "Boolean">
<#if f.fieldType.javaType() == "Boolean">
<if test="request.${f.getFName()} != null">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Byte">
</#if>
<#if f.fieldType.javaType() == "Byte">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Short">
</#if>
<#if f.fieldType.javaType() == "Short">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Integer">
</#if>
<#if f.fieldType.javaType() == "Integer">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Long">
</#if>
<#if f.fieldType.javaType() == "Long">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Float">
</#if>
<#if f.fieldType.javaType() == "Float">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Double">
</#if>
<#if f.fieldType.javaType() == "Double">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Character">
</#if>
<#if f.fieldType.javaType() == "Character">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != ''">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "String">
</#if>
<#if f.fieldType.javaType() == "String">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != ''">
AND "${f.fieldName}" = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Date">
</#if>
<#if f.fieldType.javaType() == "Date">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != ''">
AND to_char("${f.fieldName}",'yyyy-MM-dd HH24:mi:ss') = to_char(${r"#{"}request.${f.getFName()}},'yyyy-MM-dd HH24:mi:ss')
</if>
</#if>
</#if>
<#elseif dataBase='MySQL'>
<#if f.fieldType.javaType() == "Boolean">
<#if f.fieldType.javaType() == "Boolean">
<if test="request.${f.getFName()} != null">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Byte">
</#if>
<#if f.fieldType.javaType() == "Byte">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Short">
</#if>
<#if f.fieldType.javaType() == "Short">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Integer">
</#if>
<#if f.fieldType.javaType() == "Integer">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Long">
</#if>
<#if f.fieldType.javaType() == "Long">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Float">
</#if>
<#if f.fieldType.javaType() == "Float">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Double">
</#if>
<#if f.fieldType.javaType() == "Double">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Character">
</#if>
<#if f.fieldType.javaType() == "Character">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != ''">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "String">
</#if>
<#if f.fieldType.javaType() == "String">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != ''">
AND `${f.fieldName}` = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Date">
</#if>
<#if f.fieldType.javaType() == "Date">
<if test="request.${f.getFName()} != null">
AND DATE_FORMAT(`${f.fieldName}`,"%Y-%m-%d %T") = DATE_FORMAT(${r"#{"}request.${f.getFName()}},"%Y-%m-%d %T")
</if>
</#if>
</#if>
<#elseif dataBase='SQLite'>
<#if f.fieldType.javaType() == "Boolean">
<if test="request.${f.getFName()} != null">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Byte">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Short">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Integer">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Long">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Float">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Double">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != 0">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Character">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != ''">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "String">
<if test="request.${f.getFName()} != null and request.${f.getFName()} != ''">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
<#if f.fieldType.javaType() == "Date">
<if test="request.${f.getFName()} != null">
AND ${f.fieldName} = ${r"#{"}request.${f.getFName()}}
</if>
</#if>
</#if>
</#if>
</#list>
@ -164,6 +221,8 @@
<#elseif dataBase='MySQL'>
OR `${f.fieldName}` LIKE CONCAT('%',${r"#{request.keyword}"},'%')
</#if>
<#elseif dataBase='SQLite'>
OR ${f.fieldName} LIKE CONCAT('%',${r"#{request.keyword}"},'%')
</#if>
</#list>
</if>
@ -186,7 +245,7 @@
0,
0,
${r"#{"}token.userId,jdbcType=NUMERIC},
<#if dataBase == 'Oracle'>sysdate<#elseif dataBase == 'MySQL'>sysdate()</#if>,
<#if dataBase == 'Oracle'>sysdate<#elseif dataBase == 'MySQL'>sysdate()<#elseif dataBase == 'SQLite'>datetime('now')</#if>,
NULL,
NULL
)
@ -210,7 +269,7 @@
0,
0,
${r"#{"}token.userId,jdbcType=NUMERIC},
<#if dataBase == 'Oracle'>sysdate<#elseif dataBase == 'MySQL'>sysdate()</#if>,
<#if dataBase == 'Oracle'>sysdate<#elseif dataBase == 'MySQL'>sysdate()<#elseif dataBase == 'SQLite'>datetime('now')</#if>,
NULL,
NULL
)
@ -257,6 +316,17 @@
`ROW_VERSION` = `ROW_VERSION` + 1,
`LAST_UPDATE_BY` = ${r"#{"}token.userId},
`LAST_UPDATE_TIME` = sysdate()
<#elseif dataBase='SQLite'>
<#list table.fields as f>
<#if !f.isPrimaryKey>
<#if !f.isSystem || f.fieldName == 'ID'>
${f.fieldName} = ${r"#{"}request.${f.getFName()},jdbcType=${f.fieldType.jdbcType()}},
</#if>
</#if>
</#list>
ROW_VERSION = ROW_VERSION + 1,
LAST_UPDATE_BY = ${r"#{"}token.userId},
LAST_UPDATE_TIME = datetime('now')
</#if>
WHERE
<#if dataBase == 'Oracle'>
@ -267,6 +337,10 @@
`IS_DELETED` = 0
AND `ID` = ${r"#{"}request.id}
AND `ROW_VERSION` = ${r"#{"}request.rowVersion}
<#elseif dataBase='SQLite'>
IS_DELETED = 0
AND ID = ${r"#{"}request.id}
AND ROW_VERSION = ${r"#{"}request.rowVersion}
</#if>
</update>
@ -280,6 +354,8 @@
"IS_DELETED" = 0
<#elseif dataBase='MySQL'>
`IS_DELETED` = 0
<#elseif dataBase='SQLite'>
IS_DELETED = 0
</#if>
</select>
@ -295,6 +371,9 @@
<#elseif dataBase='MySQL'>
`IS_DELETED` = 0
AND `ID` = ${r"#{request.id}"}
<#elseif dataBase='SQLite'>
IS_DELETED = 0
AND ID = ${r"#{request.id}"}
</#if>
</select>
</mapper>

@ -40,7 +40,7 @@ mybatis.configuration.map-underscore-to-camel-case=true
<#if dataBase == 'SQLite'>
# SQLite spring.datasource.url=jdbc:sqlite::resource:example.db
spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.url=jdbc:sqlite::resource:example.db
spring.datasource.url=jdbc:sqlite:./example.db
spring.datasource.username=test
spring.datasource.password=123456
# mybatis

@ -18,7 +18,7 @@ server.tomcat.uri-encoding=UTF-8
logging.path=/root/
logging.levels=INFO
<#if dataBase == 'Oracle'>
# oracle
# Oracle
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.username=TEST
@ -28,9 +28,19 @@ mybatis.mapper-locations=classpath:**/mpr/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
</#if>
<#if dataBase == 'MySQL'>
# mysql
# MySQL
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=test
spring.datasource.password=123456# mybatis
# mybatis
mybatis.mapper-locations=classpath:**/mpr/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
</#if>
<#if dataBase == 'SQLite'>
# SQLite spring.datasource.url=jdbc:sqlite::resource:example.db
spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.url=jdbc:sqlite:./example.db
spring.datasource.username=test
spring.datasource.password=123456
# mybatis

@ -39,4 +39,21 @@ CREATE TABLE `${module.modulePrefix?default("")}${table.tableName}` (
PRIMARY KEY (`ID`)
</#if>
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='${table.tableComment?default("")}';
</#if>
<#if dataBase == 'SQLite'>
/*
Target : SQLite
Author
Date: ${date?string("yyyy-MM-dd")}
*/
-- ----------------------------
-- Table structure for ${table.tableName} - ${table.tableComment?default("")}
-- ----------------------------
CREATE TABLE IF NOT EXISTS `${module.modulePrefix?default("")}${table.tableName}` (
<#list table.fields as field>
${dBmapper.getFieldSql(field)}<#if field_has_next>,</#if>
</#list>
);
</#if>

@ -32,3 +32,14 @@ PRIMARY KEY (`ID`)
</#list>
</#if>
<#if dataBase == 'SQLite'>
-- ----------------------------
-- Table structure for ${table.tableName} - ${table.tableComment?default("")}
-- ----------------------------
CREATE TABLE IF NOT EXISTS `${module.modulePrefix?default("")}${table.tableName}` (
<#list table.fields as field>
${dBmapper.getFieldSql(field)}<#if field_has_next>,</#if>
</#list>
);
</#if>

@ -17,23 +17,36 @@ server.tomcat.uri-encoding=UTF-8
# 日志配置
logging.path=D://
logging.levels=DEBUG
<#if dataBase == 'ORACLE'>
# oracle
<#if dataBase == 'Oracle'>
# Oracle
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.username=TEST
spring.datasource.password=123456
# mybatis
mybatis.mapper-locations=classpath:**/mpr/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
</#if>
<#if dataBase == 'MYSQL'>
# mysql
<#if dataBase == 'MySQL'>
# MySQL
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.31.81:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=test
spring.datasource.password=123456
spring.datasource.password=123456# mybatis
# mybatis
mybatis.mapper-locations=classpath:**/mpr/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
</#if>
<#if dataBase == 'SQLite'>
# SQLite spring.datasource.url=jdbc:sqlite::resource:example.db
spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.url=jdbc:sqlite:./example.db
spring.datasource.username=test
spring.datasource.password=123456
# mybatis
mybatis.mapper-locations=classpath:**/mpr/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
</#if>
# pagehelper
pagehelper.autoRuntimeDialect=true
pagehelper.reasonable=false

Loading…
Cancel
Save

Powered by TurnKey Linux.