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 e245a3d5e3b0275440a1aaa1f555f27c9ba5e858..3c95c7e98950195ceeceadb243d1950c4d8ecfff 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 aedd9f0b27606fe6155102b82cb4034260547589..7830e587af229bfc2293c83df40d9475c9817d72 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 f44f36a058a57444cabd1315c71ef20c4878c23b..76bb9e9da9d3b08ead881b1d8e932f378cfd8cc9 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 04e30618fb4f359b51184ae52d44d5daaf2f928f..849e720f3c7cd4d7dd4f168132911c6769e31aa3 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 b46512614f5654ceb1eb3d19fd20313a6b059f4f..4e442a096dac88567e898209cfb8f36eca8e778c 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 0000000000000000000000000000000000000000..1fa75f4cfdd0432e37b5ced4ad758ee23d5b45e9 --- /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 a53a1331338140610429701a8f26dc87f321f6fb..03500e07e708f2b5ca920e4bafaee765d35a01de 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 b956f1bfc31d7f5ad9f3fc365cc07bfdda8659e9..8183e3f01492bfb110619e1b06b8b6c75057f80e 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 82ddc76a6fe2c65135738fb74a9c636b64a07aaf..b9aaeec2b7d2c7f6290079d14fb044461abc7431 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 3388f1ba5e8044aa4b79795159a2bd8e63025808..a200e6dd6475b76f3d0a1084c31b5fec5b0a216b 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 1ce2b6f06bd6bca1c4585334a8df4dc3fabf89ca..3f2a9856fed1a43f1844f14c730d78bcf3942097 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 666ced4c11d56662fdc4fd00197213a5d7671c61..b3acb42199c823c7ff09ff675ba547a69786e488 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 5f56f2ebd55908d8ebbe0c61519c7ba08f3653ba..cdbfee84b71399fbc599988a21bcd6bc4da89f9a 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 04a741650e54ffbf53c3091cf94c7981c7675614..bfcccc329b21a184e1f1e6d469ffef8ea4b2f507 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 a99598ce1f3231ea42a1d39517d8074b27d22250..91d442f85d8bed48a0ef14b8bed4b8c9512f33e6 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 d576fe0c43d3809113aaedf1238cfdefc5364852..7a38ba18a2dc51cf64b84b4f10287348d0f6f4d3 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 539d869c0dd123b96f09181a63392e30e21106d6..1adf7d4c23c915d7852a4eb52042672328610e8d 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 b961eeb31c05423741e28b7ab08cd4f6b8eae295..80e2340c44c824df062325293dfae7083bdc40a1 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 18452c255ad757b23e05f0116fad7bef4b313d0f..7e033c9c21e6445b20226842b4d51b7ab3d81c81 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 0000000000000000000000000000000000000000..0a7fbb5607a5576b22eed82e3cb06f3d09139426 --- /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 22baf292c1846e4a3ff56ac888dcce9849979ad9..129322e6c86333cf38ce86810d47ff34cad3291d 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 94ab9d098cd0826650cbf1f012b7f679f37990ca..14270c171d52289158c95218b556091be2114413 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 b2cb683af5ad84f36fa1b3a7012f665cb7d3ebee..bb8b59ca87167dbabe54966bc18f3625b01c2e2b 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 978e3b82969634f6aa02a7baeb87d6398279df36..0000000000000000000000000000000000000000 --- 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 224a5277efc162ee59234b65c365743b2d98c762..0000000000000000000000000000000000000000 --- 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 0d1f0cb2c0776cb9e51fb7cd7e2824ef7b76151d..1416b5dad5f2145d20d20e3b97a1cdd6d735919f 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 + +