From 7281a5b7fc62635d958a01805abbed692d351bb6 Mon Sep 17 00:00:00 2001 From: MaxKey Date: Wed, 21 Apr 2021 16:08:34 +0800 Subject: [PATCH] Highgo --- .../jpa/AllStatementHandlerInterceptor.java | 18 ++-- .../jpa/StatementHandlerInterceptor.java | 11 ++- .../mybatis/jpa/dialect/DB2Dialect.java | 6 +- .../mybatis/jpa/dialect/DerbyDialect.java | 6 +- .../apache/mybatis/jpa/dialect/Dialect.java | 4 +- .../jpa/dialect/HighgoDialectDialect.java | 69 +++++++++++++++ .../mybatis/jpa/dialect/MySQLDialect.java | 12 +-- .../mybatis/jpa/dialect/OracleDialect.java | 6 +- .../jpa/dialect/PostgreSQLDialect.java | 12 +-- .../mybatis/jpa/dialect/SQLServerDialect.java | 14 ++-- .../jpa/persistence/FieldColumnMapper.java | 15 +++- .../jpa/persistence/JpaPageResults.java | 21 +++-- .../jpa/persistence/JpaPagination.java | 33 ++++++-- .../jpa/persistence/MapperMetadata.java | 36 +++++++- .../provider/SqlProviderDelete.java | 2 +- .../provider/SqlProviderInsert.java | 2 +- .../provider/SqlProviderQuery.java | 8 +- .../mybatis/jpa/test/MyBatisTestRunner.java | 4 +- .../config/applicationConfig.properties | 16 ++-- .../xml/postgresql/StudentsMapper.xml | 74 +++++++++++++++++ .../spring/applicationContext-persist.xml | 4 +- .../test/resources/students-postgresql.sql | 55 ++++++++++++ .../jpa/starter/MybatisAutoConfiguration.java | 12 ++- .../jpa/starter/MybatisProperties.java | 19 +++-- .../src/test/resources/application.properties | 4 +- .../src/test/resources/students-mysql.sql | 83 ------------------- .../src/test/resources/students-oracle.sql | 81 ------------------ pom.xml | 12 +++ 28 files changed, 389 insertions(+), 250 deletions(-) create mode 100644 mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/HighgoDialectDialect.java create mode 100644 mybatis-jpa-extra-core/src/test/resources/org/apache/mybatis/jpa/test/dao/persistence/xml/postgresql/StudentsMapper.xml create mode 100644 mybatis-jpa-extra-core/src/test/resources/students-postgresql.sql delete mode 100644 mybatis-jpa-extra-test/src/test/resources/students-mysql.sql delete mode 100644 mybatis-jpa-extra-test/src/test/resources/students-oracle.sql diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/AllStatementHandlerInterceptor.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/AllStatementHandlerInterceptor.java index e245a3d..3c95c7e 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/AllStatementHandlerInterceptor.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/AllStatementHandlerInterceptor.java @@ -34,9 +34,9 @@ public class AllStatementHandlerInterceptor extends public Object intercept(Invocation invocation) throws Throwable { Method m = invocation.getMethod(); - if ("prepare".equals(m.getName())) { // һ���������Statement + if ("prepare".equals(m.getName())) { // prepare Statement return prepare(invocation); - } else if ("parameterize".equals(m.getName())) { // һ���������ò��� + } else if ("parameterize".equals(m.getName())) { // parameterize return parameterize(invocation); } else if ("handleResultSets".equals(m.getName())) {// handleResultSets return handleResultSets(invocation); @@ -54,14 +54,15 @@ public class AllStatementHandlerInterceptor extends private Object prepare(Invocation invocation) throws Throwable { StatementHandler statement = getStatementHandler(invocation); - if (statement instanceof SimpleStatementHandler || statement instanceof PreparedStatementHandler) { + if (statement instanceof SimpleStatementHandler + || statement instanceof PreparedStatementHandler) { MetaObject metaObject=SystemMetaObject.forObject(statement); Object parameterObject=metaObject.getValue("parameterHandler.parameterObject"); BoundSql boundSql = statement.getBoundSql(); String sql = boundSql.getSql(); _logger.debug("prepare boundSql : "+sql); - _logger.debug("startsWith SELECT : "+sql.toUpperCase().trim().startsWith("SELECT")); - if (sql.toUpperCase().trim().startsWith("SELECT") && (parameterObject instanceof JpaBaseDomain)) { + _logger.debug("startsWith select : "+sql.toLowerCase().trim().startsWith("select")); + if (sql.toLowerCase().trim().startsWith("select") && (parameterObject instanceof JpaBaseDomain)) { if(statement instanceof SimpleStatementHandler){ sql = dialect.getLimitString(sql, (JpaBaseDomain)parameterObject); }else if(statement instanceof PreparedStatementHandler){ @@ -84,9 +85,12 @@ public class AllStatementHandlerInterceptor extends Object parameterObject=metaObject.getValue("parameterHandler.parameterObject"); BoundSql boundSql = statementHandler.getBoundSql(); - if (boundSql.getSql().toUpperCase().trim().startsWith("SELECT") && (parameterObject instanceof JpaBaseDomain)) { + if ( + boundSql.getSql().toLowerCase().trim().startsWith("select") + && (parameterObject instanceof JpaBaseDomain) + ) { List pms= boundSql.getParameterMappings(); - System.out.println(pms); + _logger.debug("ParameterMapping " + pms); int parameterSize = pms.size(); dialect.setLimitParamters(ps, parameterSize,(JpaBaseDomain)parameterObject); } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/StatementHandlerInterceptor.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/StatementHandlerInterceptor.java index aedd9f0..7830e58 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/StatementHandlerInterceptor.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/StatementHandlerInterceptor.java @@ -42,21 +42,26 @@ public class StatementHandlerInterceptor extends AbstractStatementHandlerInterce private Object prepare(Invocation invocation) throws Throwable { StatementHandler statement = getStatementHandler(invocation); - if (statement instanceof SimpleStatementHandler || statement instanceof PreparedStatementHandler) { + if (statement instanceof SimpleStatementHandler + || statement instanceof PreparedStatementHandler) { MetaObject metaObject=SystemMetaObject.forObject(statement); Object parameterObject=metaObject.getValue("parameterHandler.parameterObject"); BoundSql boundSql = statement.getBoundSql(); String sql = boundSql.getSql(); _logger.trace("parameter object ==> "+parameterObject); if ((parameterObject instanceof JpaPagination) - && (sql.toUpperCase().trim().startsWith("SELECT")) ) { + && (sql.toLowerCase().trim().startsWith("select")) ) { + _logger.trace("dialect " + dialect); JpaPagination pagination=(JpaPagination)parameterObject; if(pagination.isPageable()){ _logger.trace("prepare boundSql ==> "+removeBreakingWhitespace(sql)); if(statement instanceof SimpleStatementHandler){ sql = dialect.getLimitString(sql, pagination); }else if(statement instanceof PreparedStatementHandler){ - JpaBaseService.pageResultsBoundSqlCache.put(pagination.getPageResultSelectUUID(), new PageResultsSqlCache(sql,boundSql)); + JpaBaseService.pageResultsBoundSqlCache.put( + pagination.getPageResultSelectUUID(), + new PageResultsSqlCache(sql,boundSql) + ); sql = dialect.getLimitString(sql, pagination); } _logger.trace("prepare dialect boundSql : "+removeBreakingWhitespace(sql)); diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DB2Dialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DB2Dialect.java index f44f36a..76bb9e9 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DB2Dialect.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DB2Dialect.java @@ -41,11 +41,11 @@ public class DB2Dialect extends Dialect { public String getPreparedStatementLimitString(String sql, JpaPagination pagination) { //LIMIT #{pageResults} OFFSET #{startRow} if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT ? , ?"; + return sql + " limit ? , ?"; }else if(pagination.getPageSize()>0){ - return sql + " LIMIT ? "; + return sql + " limit ? "; }else{ - return sql + " LIMIT ?"; + return sql + " limit ?"; } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DerbyDialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DerbyDialect.java index 04e3061..849e720 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DerbyDialect.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/DerbyDialect.java @@ -41,11 +41,11 @@ public class DerbyDialect extends Dialect { public String getPreparedStatementLimitString(String sql, JpaPagination pagination) { //LIMIT #{pageResults} OFFSET #{startRow} if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT ? , ?"; + return sql + " limit ? , ?"; }else if(pagination.getPageSize()>0){ - return sql + " LIMIT ? "; + return sql + " limit ? "; }else{ - return sql + " LIMIT ?"; + return sql + " limit ?"; } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/Dialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/Dialect.java index b465126..4e442a0 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/Dialect.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/Dialect.java @@ -21,7 +21,7 @@ public abstract class Dialect { private static final Logger _logger = LoggerFactory.getLogger(Dialect.class); - public static final String DEFAULT_BATCH_SIZE = "15"; + public static final String DEFAULT_BATCH_SIZE = "20"; public static final String NO_BATCH = "0"; public static final String DEFAULT_DIALECT = "mysql"; @@ -35,8 +35,10 @@ public abstract class Dialect { dialectMap.put("mysql", "org.apache.mybatis.jpa.dialect.MySQLDialect"); dialectMap.put("oracle", "org.apache.mybatis.jpa.dialect.OracleDialect"); dialectMap.put("postgresql", "org.apache.mybatis.jpa.dialect.PostgreSQLDialect"); + dialectMap.put("highgo", "org.apache.mybatis.jpa.dialect.HighgoDialect"); dialectMap.put("sqlserver", "org.apache.mybatis.jpa.dialect.SQLServerDialect"); + _logger.trace("Dialect Mapper : \n"+dialectMap); } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/HighgoDialectDialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/HighgoDialectDialect.java new file mode 100644 index 0000000..1fa75f4 --- /dev/null +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/HighgoDialectDialect.java @@ -0,0 +1,69 @@ +package org.apache.mybatis.jpa.dialect; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +import org.apache.mybatis.jpa.persistence.JpaPagination; + + +public class HighgoDialectDialect extends Dialect { + + public HighgoDialectDialect() { + super(); + + } + + @Override + public boolean supportsLimit() { + return true; + } + + @Override + public String getLimitString(String sql, JpaPagination pagination) { + //LIMIT #{pageResults} OFFSET #{startRow} + if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ + return sql + " limit " + pagination.getPageSize()+" offset "+pagination.getStartRow() ; + }else if(pagination.getPageSize()>0){ + return sql + " limit " + pagination.getPageSize(); + }else{ + return sql + " limit 1000"; + } + } + + @Override + public String getPreparedStatementLimitString(String sql, JpaPagination pagination) { + //LIMIT #{pageResults} OFFSET #{startRow} + if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ + return sql + " limit ? , ?"; + }else if(pagination.getPageSize()>0){ + return sql + " limit ? "; + }else{ + return sql + " limit ?"; + } + } + + + public void setLimitParamters(PreparedStatement preparedStatement,int parameterSize,JpaPagination pagination) { + + try { + if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ + preparedStatement.setInt(++parameterSize, pagination.getPageSize()); + preparedStatement.setInt(++parameterSize, pagination.getPageSize()); + }else if(pagination.getPageSize()>0){ + preparedStatement.setInt(++parameterSize, pagination.getPageSize()); + }else{ + preparedStatement.setInt(++parameterSize, 1000); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "PostgreSQLDialect [" + HighgoDialectDialect.class + "]"; + } +} diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/MySQLDialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/MySQLDialect.java index a53a133..03500e0 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/MySQLDialect.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/MySQLDialect.java @@ -29,11 +29,11 @@ public class MySQLDialect extends Dialect { //LIMIT #{pageResults} OFFSET #{startRow} pagination.calculate(); if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT "+pagination.getStartRow()+" , " +pagination.getPageSize(); + return sql + " limit "+pagination.getStartRow()+" , " +pagination.getPageSize(); }else if(pagination.getPageSize()>0){ - return sql + " LIMIT "+pagination.getPageSize(); + return sql + " limit "+pagination.getPageSize(); }else{ - return sql + " LIMIT "+pagination.getPageSize(); + return sql + " limit "+pagination.getPageSize(); } } @@ -41,11 +41,11 @@ public class MySQLDialect extends Dialect { public String getPreparedStatementLimitString(String sql, JpaPagination pagination) { //LIMIT #{pageResults} OFFSET #{startRow} if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT ? , ?"; + return sql + " limit ? , ?"; }else if(pagination.getPageSize()>0){ - return sql + " LIMIT ? "; + return sql + " limit ? "; }else{ - return sql + " LIMIT ?"; + return sql + " limit ?"; } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/OracleDialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/OracleDialect.java index b956f1b..8183e3f 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/OracleDialect.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/OracleDialect.java @@ -41,11 +41,11 @@ public class OracleDialect extends Dialect { public String getPreparedStatementLimitString(String sql, JpaPagination pagination) { //LIMIT #{pageResults} OFFSET #{startRow} if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT ? , ?"; + return sql + " limit ? , ?"; }else if(pagination.getPageSize()>0){ - return sql + " LIMIT ? "; + return sql + " limit ? "; }else{ - return sql + " LIMIT ?"; + return sql + " limit ?"; } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/PostgreSQLDialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/PostgreSQLDialect.java index 82ddc76..b9aaeec 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/PostgreSQLDialect.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/PostgreSQLDialect.java @@ -22,11 +22,11 @@ public class PostgreSQLDialect extends Dialect { public String getLimitString(String sql, JpaPagination pagination) { //LIMIT #{pageResults} OFFSET #{startRow} if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT " + pagination.getPageSize()+" , "+pagination.getStartRow() ; + return sql + " limit " + pagination.getPageSize()+" offset "+pagination.getStartRow() ; }else if(pagination.getPageSize()>0){ - return sql + " LIMIT " + pagination.getPageSize(); + return sql + " limit " + pagination.getPageSize(); }else{ - return sql + " LIMIT 1000"; + return sql + " limit 1000"; } } @@ -34,11 +34,11 @@ public class PostgreSQLDialect extends Dialect { public String getPreparedStatementLimitString(String sql, JpaPagination pagination) { //LIMIT #{pageResults} OFFSET #{startRow} if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT ? , ?"; + return sql + " limit ? offset ?"; }else if(pagination.getPageSize()>0){ - return sql + " LIMIT ? "; + return sql + " limit ? "; }else{ - return sql + " LIMIT ?"; + return sql + " limit ?"; } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/SQLServerDialect.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/SQLServerDialect.java index 3388f1b..a200e6d 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/SQLServerDialect.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/dialect/SQLServerDialect.java @@ -25,11 +25,11 @@ public class SQLServerDialect extends Dialect { StringBuilder pagingSelectSql = new StringBuilder( "" ); if(pagination.getPageSize()>0){ - pagingSelectSql.append("SELECT TOP "+pagination.getPageSize()+" * FROM ( "); - pagingSelectSql.append("SELECT ROW_NUMBER() OVER() AS ROWNUMBER,MYBATIS_QUERY_TEMP_TABLE.* FROM ( "); - pagingSelectSql.append("MYBATIS_QUERY_TEMP_TABLE ) MYBATIS_QUERY_TEMP_PAGE "); + pagingSelectSql.append("select top "+pagination.getPageSize()+" * from ( "); + pagingSelectSql.append("select row_number() over() as rownumber,mybatis_query_temp_table.* from ( "); + pagingSelectSql.append("mybatis_query_temp_table ) mybatis_query_temp_page "); if(pagination.getStartRow()>0){ - pagingSelectSql.append("WHERE ROWNUMBER > "+pagination.getStartRow()); + pagingSelectSql.append("where rownumber > "+pagination.getStartRow()); } }else{ return sql; @@ -41,11 +41,11 @@ public class SQLServerDialect extends Dialect { public String getPreparedStatementLimitString(String sql, JpaPagination pagination) { //LIMIT #{pageResults} OFFSET #{startRow} if(pagination.getPageSize()>0&&pagination.getStartRow()>0){ - return sql + " LIMIT ? , ?"; + return sql + " limit ? , ?"; }else if(pagination.getPageSize()>0){ - return sql + " LIMIT ? "; + return sql + " limit ? "; }else{ - return sql + " LIMIT ?"; + return sql + " limit ?"; } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/FieldColumnMapper.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/FieldColumnMapper.java index 1ce2b6f..3f2a985 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/FieldColumnMapper.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/FieldColumnMapper.java @@ -69,8 +69,19 @@ public class FieldColumnMapper { @Override public String toString() { - return "FieldColumnMapper [fieldName=" + fieldName + ", fieldType=" + fieldType + ", columnName=" + columnName - + ", idColumn=" + idColumn + ", generatedValue=" + generatedValue + "]"; + StringBuilder builder = new StringBuilder(); + builder.append("FieldColumnMapper [fieldName="); + builder.append(fieldName); + builder.append(", fieldType="); + builder.append(fieldType); + builder.append(", columnName="); + builder.append(columnName); + builder.append(", idColumn="); + builder.append(idColumn); + builder.append(", generatedValue="); + builder.append(generatedValue); + builder.append("]"); + return builder.toString(); } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPageResults.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPageResults.java index 666ced4..b3acb42 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPageResults.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPageResults.java @@ -183,14 +183,23 @@ public class JpaPageResults { public void setRows(List rows) { this.rows = rows; } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ @Override public String toString() { - return "Grid [page=" + page + ", total=" + total - + ", totalPage=" + totalPage + ", records=" + records - + ", rows=" + rows + "]"; + StringBuilder builder = new StringBuilder(); + builder.append("JpaPageResults [_logger="); + builder.append(_logger); + builder.append(", page="); + builder.append(page); + builder.append(", total="); + builder.append(total); + builder.append(", totalPage="); + builder.append(totalPage); + builder.append(", records="); + builder.append(records); + builder.append(", rows="); + builder.append(rows); + builder.append("]"); + return builder.toString(); } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPagination.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPagination.java index 5f56f2e..cdbfee8 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPagination.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/JpaPagination.java @@ -202,16 +202,33 @@ public class JpaPagination { return pageResultSelectUUID; } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ @Override public String toString() { - return "Pagination [rows=" + rows + ", pageResults=" + pageSize - + ", page=" + pageNumber + ", startRow=" + startRow + ", endRow=" - + endRow + ", sidx=" + sidx + ", sord=" + sortOrder + ", sortKey=" - + sortKey + ", orderBy=" + orderBy + ", pageable=" + pageable - + "]"; + StringBuilder builder = new StringBuilder(); + builder.append("JpaPagination [rows="); + builder.append(rows); + builder.append(", pageSize="); + builder.append(pageSize); + builder.append(", pageNumber="); + builder.append(pageNumber); + builder.append(", startRow="); + builder.append(startRow); + builder.append(", endRow="); + builder.append(endRow); + builder.append(", sidx="); + builder.append(sidx); + builder.append(", sortOrder="); + builder.append(sortOrder); + builder.append(", sortKey="); + builder.append(sortKey); + builder.append(", orderBy="); + builder.append(orderBy); + builder.append(", pageable="); + builder.append(pageable); + builder.append(", pageResultSelectUUID="); + builder.append(pageResultSelectUUID); + builder.append("]"); + return builder.toString(); } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/MapperMetadata.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/MapperMetadata.java index 04a7416..bfcccc3 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/MapperMetadata.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/MapperMetadata.java @@ -39,15 +39,26 @@ public class MapperMetadata { /** * 表名和字段名 */ - public static boolean TABLE_COLUMN_UPCASE = true; + public static int TABLE_COLUMN_CASE = CASE_TYPE.LOWERCASE; public static boolean TABLE_COLUMN_ESCAPE = false; public static String TABLE_COLUMN_ESCAPE_CHAR = "`"; + public static class CASE_TYPE{ + public static int NORMAL = 0; + public static int LOWERCASE = 1; + public static int UPPERCASE = 2; + } + public transient static ConcurrentMap> fieldsMap = new ConcurrentHashMap>(); public transient static ConcurrentMap sqlsMap = new ConcurrentHashMap(); public static IdentifierGeneratorFactory identifierGeneratorFactory=new IdentifierGeneratorFactory(); + /** + * getTableName + * @param entityClass + * @return + */ public static String getTableName(Class entityClass) { String tableName = null; String schema = null; @@ -89,7 +100,9 @@ public class MapperMetadata { } } - tableName = TABLE_COLUMN_UPCASE ? tableName.toUpperCase() : tableName; + + tableName = tableColumnCaseConverter(tableName); + tableName = TABLE_COLUMN_ESCAPE ? TABLE_COLUMN_ESCAPE_CHAR + tableName + TABLE_COLUMN_ESCAPE_CHAR : tableName; _logger.trace("Table Name " + tableName); return tableName; @@ -107,6 +120,10 @@ public class MapperMetadata { return idFieldColumnMapper; } + /** + * buildColumnList + * @param entityClass + */ public static void buildColumnList(Class entityClass) { if (fieldsMap.containsKey(entityClass.getSimpleName())) { //run one time @@ -133,10 +150,11 @@ public class MapperMetadata { if (columnAnnotation.name() != null && !columnAnnotation.name().equals("")) { columnName = columnAnnotation.name(); } else { - columnName = TABLE_COLUMN_UPCASE ? - field.getName().toUpperCase() : field.getName(); + columnName = field.getName(); } + columnName = tableColumnCaseConverter(columnName); + columnName = TABLE_COLUMN_ESCAPE ? TABLE_COLUMN_ESCAPE_CHAR + columnName + TABLE_COLUMN_ESCAPE_CHAR : columnName; @@ -161,4 +179,14 @@ public class MapperMetadata { _logger.debug("fieldsMap : " + fieldsMap); } + + public static String tableColumnCaseConverter(String name) { + if(TABLE_COLUMN_CASE == CASE_TYPE.NORMAL) {} + else if(TABLE_COLUMN_CASE == CASE_TYPE.LOWERCASE) { + name = name.toLowerCase(); + }else if(TABLE_COLUMN_CASE == CASE_TYPE.UPPERCASE) { + name = name.toUpperCase(); + } + return name; + } } diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderDelete.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderDelete.java index a99598c..91d442f 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderDelete.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderDelete.java @@ -50,7 +50,7 @@ public class SqlProviderDelete { FieldColumnMapper idFieldColumnMapper=MapperMetadata.getIdColumn(entityClass.getSimpleName()); SQL sql=new SQL(); sql.DELETE_FROM(MapperMetadata.getTableName(entityClass)); - sql.WHERE(idFieldColumnMapper.getColumnName()+" IN ( "+keyValue+" )"); + sql.WHERE(idFieldColumnMapper.getColumnName()+" in ( "+keyValue+" )"); String deleteSql=sql.toString(); _logger.trace("Delete SQL \n"+deleteSql); MapperMetadata.sqlsMap.put(MapperMetadata.getTableName(entityClass) + MapperMetadata.SQL_TYPE.REMOVE_SQL,deleteSql); diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderInsert.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderInsert.java index d576fe0..7a38ba1 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderInsert.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderInsert.java @@ -56,7 +56,7 @@ public class SqlProviderInsert { sql.VALUES(fieldColumnMapper.getColumnName(),"#{" + fieldColumnMapper.getFieldName() + "}"); } }else if(generatedValue.strategy()==GenerationType.SEQUENCE){ - sql.VALUES(fieldColumnMapper.getColumnName(),generatedValue.generator()+".NEXTVAL"); + sql.VALUES(fieldColumnMapper.getColumnName(),generatedValue.generator()+".nextval"); }else if(generatedValue.strategy()==GenerationType.IDENTITY){ //skip }else if(generatedValue.strategy()==GenerationType.TABLE){ diff --git a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java index 539d869..1adf7d4 100644 --- a/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java +++ b/mybatis-jpa-extra-core/src/main/java/org/apache/mybatis/jpa/persistence/provider/SqlProviderQuery.java @@ -107,11 +107,11 @@ public class SqlProviderQuery { countSql.append(selectSql); } - if(countSql.toString().toUpperCase().indexOf("DISTINCT")>0) { - sql.append("SELECT COUNT(1) COUNTROWS_ FROM (").append(countSql).append(" ) COUNT_TABLE_"); + if(countSql.toString().toLowerCase().indexOf("distinct")>0) { + sql.append("select count(1) countrows_ from (").append(countSql).append(" ) count_table_"); }else { - sql.append("SELECT COUNT(1) COUNTROWS_ ").append( - countSql.substring(countSql.toString().toUpperCase().indexOf("FROM")) + sql.append("select count(1) countrows_ ").append( + countSql.substring(countSql.toString().toLowerCase().indexOf("from")) ); } //删除缓存 diff --git a/mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java b/mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java index b961eeb..80e2340 100644 --- a/mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java +++ b/mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java @@ -38,7 +38,7 @@ public class MyBatisTestRunner { Thread.sleep(1000); _logger.info("insert id " + student.getId()); - service.remove(student.getId()); + //service.remove(student.getId()); } @@ -129,7 +129,7 @@ public class MyBatisTestRunner { student.setStdGender("M"); //student.setStdMajor(政治"); student.setPageSize(10); - student.setPageNumber(2); + student.setPageNumber(1); List allListStudents = service.queryPageResults(student).getRows(); for (Students s : allListStudents) { diff --git a/mybatis-jpa-extra-core/src/test/resources/config/applicationConfig.properties b/mybatis-jpa-extra-core/src/test/resources/config/applicationConfig.properties index 18452c2..7e033c9 100644 --- a/mybatis-jpa-extra-core/src/test/resources/config/applicationConfig.properties +++ b/mybatis-jpa-extra-core/src/test/resources/config/applicationConfig.properties @@ -2,7 +2,7 @@ # DataBase configuration ############################################################################ #db2,derby,mysql,oracle,postgresql,sqlserver -config.datasource.database=mysql +config.datasource.database=postgresql # JDBC Driver # for MySql com.mysql.jdbc.Driver # for oracle oracle.jdbc.driver.OracleDriver @@ -21,9 +21,15 @@ config.datasource.database=mysql # for SyBase jdbc:sybase:Tds:hostname:port/secdb # for Derby jdbc:derby://localhost:1527/secdb # -config.datasource.driverclass=com.mysql.jdbc.Driver -config.datasource.url=jdbc:mysql://localhost/test?autoReconnect=false&characterEncoding=UTF-8&serverTimezone=UTC -config.datasource.username=root -config.datasource.password=maxkey +config.datasource.driverclass=org.postgresql.Driver +config.datasource.url=jdbc:postgresql://localhost:5432/postgres +config.datasource.username=postgres +config.datasource.password=postgresql + + +#config.datasource.driverclass=com.mysql.jdbc.Driver +#config.datasource.url=jdbc:mysql://localhost/test?autoReconnect=false&characterEncoding=UTF-8&serverTimezone=UTC +#config.datasource.username=root +#config.datasource.password=maxkey ############################################################################ \ No newline at end of file diff --git a/mybatis-jpa-extra-core/src/test/resources/org/apache/mybatis/jpa/test/dao/persistence/xml/postgresql/StudentsMapper.xml b/mybatis-jpa-extra-core/src/test/resources/org/apache/mybatis/jpa/test/dao/persistence/xml/postgresql/StudentsMapper.xml new file mode 100644 index 0000000..0a7fbb5 --- /dev/null +++ b/mybatis-jpa-extra-core/src/test/resources/org/apache/mybatis/jpa/test/dao/persistence/xml/postgresql/StudentsMapper.xml @@ -0,0 +1,74 @@ + + + + + + WHERE 1 = 1 + + AND id = '${id}' + + + AND stdname like '%${stdName}%' + + + AND stdgender = #{stdGender} + + + + + + + + + + + + + + + + + delete from students where id=#{id} + + + + + \ No newline at end of file diff --git a/mybatis-jpa-extra-core/src/test/resources/spring/applicationContext-persist.xml b/mybatis-jpa-extra-core/src/test/resources/spring/applicationContext-persist.xml index 22baf29..129322e 100644 --- a/mybatis-jpa-extra-core/src/test/resources/spring/applicationContext-persist.xml +++ b/mybatis-jpa-extra-core/src/test/resources/spring/applicationContext-persist.xml @@ -35,9 +35,9 @@ - + - + 0 && diff --git a/mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisProperties.java b/mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisProperties.java index 94ab9d0..14270c1 100644 --- a/mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisProperties.java +++ b/mybatis-jpa-extra-spring-boot-starter/src/main/java/org/apache/mybatis/jpa/starter/MybatisProperties.java @@ -64,7 +64,7 @@ public class MybatisProperties { private String tableColumnEscapeChar; - private boolean tableColumnUpcase; + private String tableColumnCase; private int tableColumnSnowflakeDatacenterId; @@ -241,15 +241,18 @@ public class MybatisProperties { this.tableColumnEscapeChar = tableColumnEscapeChar; } - public boolean isTableColumnUpcase() { - return tableColumnUpcase; - } - public void setTableColumnUpcase(boolean tableColumnUpcase) { - this.tableColumnUpcase = tableColumnUpcase; - } - public int getTableColumnSnowflakeDatacenterId() { + +public String getTableColumnCase() { + return tableColumnCase; +} + +public void setTableColumnCase(String tableColumnCase) { + this.tableColumnCase = tableColumnCase; +} + +public int getTableColumnSnowflakeDatacenterId() { return tableColumnSnowflakeDatacenterId; } diff --git a/mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties b/mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties index b2cb683..bb8b59c 100644 --- a/mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties +++ b/mybatis-jpa-extra-spring-boot-starter/src/test/resources/application.properties @@ -6,9 +6,9 @@ spring.datasource.url=jdbc:mysql://localhost/test?autoReconnect=true&characterEn spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource - +mybatis.dialect=mysql mybatis.type-aliases-package=org.apache.mybatis.jpa.test.domain -mybatis.mapper-locations=classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/mysql/*.xml +mybatis.mapper-locations=classpath*:/org/apache/mybatis/jpa/test/dao/persistence/xml/${mybatis.dialect}/*.xml mybatis.table-column-escape=true mybatis.table-column-snowflake-datacenter-id=1 mybatis.table-column-snowflake-machine-id=1 diff --git a/mybatis-jpa-extra-test/src/test/resources/students-mysql.sql b/mybatis-jpa-extra-test/src/test/resources/students-mysql.sql deleted file mode 100644 index 978e3b8..0000000 --- a/mybatis-jpa-extra-test/src/test/resources/students-mysql.sql +++ /dev/null @@ -1,83 +0,0 @@ -CREATE TABLE STUDENTS -( - STDNO VARCHAR(100), - STDNAME VARCHAR(100), - STDGENDER VARCHAR(100), - STDAGE int, - STDMAJOR VARCHAR(100), - STDCLASS VARCHAR(100), - ID VARCHAR(100) -)ENGINE = InnoDB -DEFAULT CHARACTER SET = utf8 -COLLATE = utf8_general_ci; - - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10001', '刘备', 'M', 40, '政治', '1', '8c34448b-c65b-4a4e-a0da-83284d05f909'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10002', '关羽', 'M', 37, '物理', '1', 'b9111f83-d338-461d-8d46-f331087d5a42'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10003', '张飞', 'M', 38, '政治', '1', '1297510b-5f47-4425-b1cf-778425254142'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10004', '赵云', 'M', 29, '历史', '1', '940908e2-7c58-429a-bcef-8b566befed00'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10005', '黄忠', 'M', 68, '化学', '1', '05084723-77a8-425a-870e-e33d00e53fd2'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10006', '魏延', 'M', 35, '化学', '1', '37e4b3b4-3c76-4bf3-8165-f514d14ff54f'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10007', '马超', 'M', 29, '历史', '1', 'f8d34aac-93d6-47ab-915e-fcd169007f62'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10008', '姜维', 'M', 20, '政治', '1', 'd252f326-c0ac-46cb-82fc-cb2597edaf41'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10009', '孙策', 'M', 43, '政治', '2', 'e4b748e6-ff3c-4727-9fc2-458b97cb318d'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10010', '周瑜', 'M', 39, '数学', '2', 'c38f8afd-a6bc-458d-9f9a-fb22f30c7e39'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10011', '鲁肃', 'M', 34, '物理', '2', '71aaa4dd-9720-4f76-a825-357842de3c88'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10012', '吕蒙', 'M', 20, '数学', '2', 'dba0b7b9-97bf-41ac-8ac1-652b1fa05c9a'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10013', '孙权', 'M', 20, '政治', '2', '3f1e0276-8104-44a0-9231-2759777b08ee'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10014', '陆逊', 'M', 18, '数学', '2', '2120f7a5-00d9-44ff-92ee-ae1e2bc212e2'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10015', '曹操', 'M', 46, '政治', '3', '715c53ac-c85d-4049-9ef9-abf4e3d91d15'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10016', '典韦', 'M', 28, '历史', '3', '293745a9-c33e-47d2-9844-8668574d3b60'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10017', '曹仁', 'M', 40, '数学', '3', 'f29ca87a-7b85-4ed6-b57b-8ab75128487b'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10018', '司马懿', 'M', 38, '政治', '3', '8793f911-fc0a-49fa-9ca7-2ab4e6a19454'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10019', '邓艾', 'M', 17, '军事', '3', '317d5eda-927c-4871-a916-472a8062df23'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10020', '大乔', 'F', 25, '艺术', '4', '3edd3ce2-1b13-46c9-8f39-37522052f2cc'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10021', '小乔', 'F', 23, '艺术', '4', 'd353a108-657d-47c3-8aef-e6936fd9a58e'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10022', '孙尚香', 'F', 26, '历史', '4', '22f2914c-37bc-4e05-b0da-3d02f682008a'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10023', '貂蝉', 'F', 20, '艺术', '4', 'af04d610-6092-481e-9558-30bd63ef783c'); - diff --git a/mybatis-jpa-extra-test/src/test/resources/students-oracle.sql b/mybatis-jpa-extra-test/src/test/resources/students-oracle.sql deleted file mode 100644 index 224a527..0000000 --- a/mybatis-jpa-extra-test/src/test/resources/students-oracle.sql +++ /dev/null @@ -1,81 +0,0 @@ -CREATE TABLE STUDENTS -( - STDNO VARCHAR2(100), - STDNAME VARCHAR2(100), - STDGENDER VARCHAR2(100), - STDAGE NUMBER, - STDMAJOR VARCHAR2(100), - STDCLASS VARCHAR2(100), - ID VARCHAR2(100) -); - - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10001', '刘备', 'M', 40, '政治', '1', '8c34448b-c65b-4a4e-a0da-83284d05f909'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10002', '关羽', 'M', 37, '物理', '1', 'b9111f83-d338-461d-8d46-f331087d5a42'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10003', '张飞', 'M', 38, '政治', '1', '1297510b-5f47-4425-b1cf-778425254142'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10004', '赵云', 'M', 29, '历史', '1', '940908e2-7c58-429a-bcef-8b566befed00'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10005', '黄忠', 'M', 68, '化学', '1', '05084723-77a8-425a-870e-e33d00e53fd2'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10006', '魏延', 'M', 35, '化学', '1', '37e4b3b4-3c76-4bf3-8165-f514d14ff54f'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10007', '马超', 'M', 29, '历史', '1', 'f8d34aac-93d6-47ab-915e-fcd169007f62'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10008', '姜维', 'M', 20, '政治', '1', 'd252f326-c0ac-46cb-82fc-cb2597edaf41'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10009', '孙策', 'M', 43, '政治', '2', 'e4b748e6-ff3c-4727-9fc2-458b97cb318d'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10010', '周瑜', 'M', 39, '数学', '2', 'c38f8afd-a6bc-458d-9f9a-fb22f30c7e39'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10011', '鲁肃', 'M', 34, '物理', '2', '71aaa4dd-9720-4f76-a825-357842de3c88'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10012', '吕蒙', 'M', 20, '数学', '2', 'dba0b7b9-97bf-41ac-8ac1-652b1fa05c9a'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10013', '孙权', 'M', 20, '政治', '2', '3f1e0276-8104-44a0-9231-2759777b08ee'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10014', '陆逊', 'M', 18, '数学', '2', '2120f7a5-00d9-44ff-92ee-ae1e2bc212e2'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10015', '曹操', 'M', 46, '政治', '3', '715c53ac-c85d-4049-9ef9-abf4e3d91d15'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10016', '典韦', 'M', 28, '历史', '3', '293745a9-c33e-47d2-9844-8668574d3b60'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10017', '曹仁', 'M', 40, '数学', '3', 'f29ca87a-7b85-4ed6-b57b-8ab75128487b'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10018', '司马懿', 'M', 38, '政治', '3', '8793f911-fc0a-49fa-9ca7-2ab4e6a19454'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10019', '邓艾', 'M', 17, '军事', '3', '317d5eda-927c-4871-a916-472a8062df23'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10020', '大乔', 'F', 25, '艺术', '4', '3edd3ce2-1b13-46c9-8f39-37522052f2cc'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10021', '小乔', 'F', 23, '艺术', '4', 'd353a108-657d-47c3-8aef-e6936fd9a58e'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10022', '孙尚香', 'F', 26, '历史', '4', '22f2914c-37bc-4e05-b0da-3d02f682008a'); - -insert into STUDENTS (STDNO, STDNAME, STDGENDER, STDAGE, STDMAJOR, STDCLASS, ID) -values ('10023', '貂蝉', 'F', 20, '艺术', '4', 'af04d610-6092-481e-9558-30bd63ef783c'); - diff --git a/pom.xml b/pom.xml index 0d1f0cb..1416b5d 100644 --- a/pom.xml +++ b/pom.xml @@ -224,6 +224,18 @@ mysql-connector-java ${mysql-connnector.version} + + com.highgo + HgdbJdbc + 6.0.3.jre8 + + + + org.postgresql + postgresql + 42.2.19 + + -- GitLab