Forráskód Böngészése

合并部分代码至1.x版本

Caratacus 8 éve
szülő
commit
9160d8509a

+ 22 - 22
mybatis-plus/src/main/java/com/baomidou/mybatisplus/plugins/PaginationInterceptor.java

@@ -15,12 +15,11 @@
  */
 package com.baomidou.mybatisplus.plugins;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Properties;
-
+import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.plugins.pagination.DialectFactory;
+import com.baomidou.mybatisplus.plugins.pagination.IDialect;
+import com.baomidou.mybatisplus.plugins.pagination.Pagination;
+import com.baomidou.mybatisplus.toolkit.StringUtils;
 import org.apache.ibatis.executor.parameter.ParameterHandler;
 import org.apache.ibatis.executor.statement.StatementHandler;
 import org.apache.ibatis.mapping.BoundSql;
@@ -35,11 +34,11 @@ import org.apache.ibatis.reflection.SystemMetaObject;
 import org.apache.ibatis.scripting.defaults.DefaultParameterHandler;
 import org.apache.ibatis.session.RowBounds;
 
-import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.plugins.pagination.DialectFactory;
-import com.baomidou.mybatisplus.plugins.pagination.IDialect;
-import com.baomidou.mybatisplus.plugins.pagination.Pagination;
-import com.baomidou.mybatisplus.toolkit.StringUtils;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Properties;
 
 /**
  * <p>
@@ -51,13 +50,13 @@ import com.baomidou.mybatisplus.toolkit.StringUtils;
  */
 @Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = { Connection.class, Integer.class }) })
 public class PaginationInterceptor implements Interceptor {
-	
+
 	/* 溢出总页数,设置第一页 */
 	private boolean overflowCurrent = false;
-	
+
 	/* 方言类型 */
 	private String dialectType;
-	
+
 	/* 方言实现类 */
 	private String dialectClazz;
 
@@ -67,12 +66,12 @@ public class PaginationInterceptor implements Interceptor {
 			StatementHandler statementHandler = (StatementHandler) target;
 			MetaObject metaStatementHandler = SystemMetaObject.forObject(statementHandler);
 			RowBounds rowBounds = (RowBounds) metaStatementHandler.getValue("delegate.rowBounds");
-			
+
 			/* 不需要分页的场合 */
 			if (rowBounds == null || rowBounds == RowBounds.DEFAULT) {
 				return invocation.proceed();
 			}
-			
+
 			/* 定义数据库方言 */
 			IDialect dialect = null;
 			if (StringUtils.isNotEmpty(dialectType)) {
@@ -89,7 +88,7 @@ public class PaginationInterceptor implements Interceptor {
 					}
 				}
 			}
-			
+
 			/* 未配置方言则抛出异常 */
 			if (dialect == null) {
 				throw new MybatisPlusException("The value of the dialect property in mybatis configuration.xml is not defined.");
@@ -126,19 +125,20 @@ public class PaginationInterceptor implements Interceptor {
 					 * COUNT 查询,去掉 ORDER BY 优化执行 SQL
 					 */
 					StringBuffer countSql = new StringBuffer("SELECT COUNT(1) AS TOTAL ");
-					String tempSql = originalSql.toUpperCase();
+					String tempSql = new String(originalSql);
+					String indexOfSql = originalSql.toUpperCase();
 					int formIndex = -1;
 					if (page.isOptimizeCount()) {
-						formIndex = tempSql.indexOf("FROM");
+						formIndex = indexOfSql.indexOf("FROM");
 					}
-					int orderByIndex = tempSql.lastIndexOf("ORDER BY");
-					if ( orderByIndex > -1 ) {
+					int orderByIndex = indexOfSql.lastIndexOf("ORDER BY");
+					if (orderByIndex > -1) {
 						orderBy = false;
 						tempSql = originalSql.substring(0, orderByIndex);
 					}
 					if (page.isOptimizeCount() && formIndex > -1) {
 						// 无排序情况处理
-						if ( orderByIndex > -1 ) {
+						if (orderByIndex > -1) {
 							countSql.append(tempSql.substring(formIndex));
 						} else {
 							countSql.append(originalSql.substring(formIndex));

+ 4 - 0
mybatis-plus/src/main/java/com/baomidou/mybatisplus/toolkit/TableInfoHelper.java

@@ -29,6 +29,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.logging.Logger;
 
 /**
  * <p>
@@ -40,6 +41,7 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 public class TableInfoHelper {
 
+	protected static final Logger logger = Logger.getLogger("TableInfoHelper");
 	/**
 	 * 缓存反射类表信息
 	 */
@@ -162,6 +164,8 @@ public class TableInfoHelper {
 		 * 未发现主键注解,跳过注入
 		 */
 		if (null == tableInfo.getKeyColumn()) {
+			logger.warning(String.format("Warn: Could not find @TableId in Class: %s, initTableInfo Method Fail.",
+					clazz.getName()));
 			return null;
 		}
 		// 缓存