Browse Source

新增setModelAndRecordFieldNameToCamelCase(boolean toLowerCaseAnyway)

James 5 years ago
parent
commit
35bed5c5b8

+ 16 - 4
src/main/java/com/jfinal/json/JFinalJson.java

@@ -151,10 +151,22 @@ public class JFinalJson extends Json {
 	/**
 	 * 配置将 Model、Record 字段名转换为驼峰格式
 	 * 
-	 * 转换用到了 StrKit.toCamelCase(fieldName, true),具体转换规则参考
-	 * 该方法注释中的说明,注意字段名首先会被转换成小写字母,如果要改变转换规则
-	 * 可以使用 setModelAndRecordFieldNameConverter(Function func)
-	 * 定制自己的转换函数
+	 * <pre>
+	 * toLowerCaseAnyway 参数的含义:
+	 * 1:true 值无条件将字段先转换成小写字母。适用于 oracle 这类字段名是大写字母的数据库
+	 * 2:false 值只在出现下划线时将字段转换成小写字母。适用于 mysql 这类字段名是小写字母的数据库
+	 * </pre>
+	 */
+	public static void setModelAndRecordFieldNameToCamelCase(boolean toLowerCaseAnyway) {
+		JFinalJsonKit.setModelAndRecordFieldNameToCamelCase(toLowerCaseAnyway);
+	}
+	
+	/**
+	 * 配置将 Model、Record 字段名转换为驼峰格式
+	 * 
+	 * 先将字段名无条件转换成小写字母,然后再转成驼峰格式,适用于 oracle 这类字段名是大写字母的数据库
+	 * 
+	 * 如果是 mysql 数据库,建议使用: setModelAndRecordFieldNameToCamelCase(false);
 	 */
 	public static void setModelAndRecordFieldNameToCamelCase() {
 		JFinalJsonKit.setModelAndRecordFieldNameToCamelCase();

+ 18 - 6
src/main/java/com/jfinal/json/JFinalJsonKit.java

@@ -798,17 +798,29 @@ public class JFinalJsonKit {
 	/**
 	 * 配置将 Model、Record 字段名转换为驼峰格式
 	 * 
-	 * 转换用到了 StrKit.toCamelCase(fieldName, true),具体转换规则参考
-	 * 该方法注释中的说明,注意字段名首先会被转换成小写字母,如果要改变转换规则
-	 * 可以使用 setModelAndRecordFieldNameConverter(Function func)
-	 * 定制自己的转换函数
+	 * <pre>
+	 * toLowerCaseAnyway 参数的含义:
+	 * 1:true 值无条件将字段先转换成小写字母。适用于 oracle 这类字段名是大写字母的数据库
+	 * 2:false 值只在出现下划线时将字段转换成小写字母。适用于 mysql 这类字段名是小写字母的数据库
+	 * </pre>
 	 */
-	public static void setModelAndRecordFieldNameToCamelCase() {
+	public static void setModelAndRecordFieldNameToCamelCase(boolean toLowerCaseAnyway) {
 		modelAndRecordFieldNameConverter = (fieldName) -> {
-			return StrKit.toCamelCase(fieldName, true);
+			return StrKit.toCamelCase(fieldName, toLowerCaseAnyway);
 		};
 	}
 	
+	/**
+	 * 配置将 Model、Record 字段名转换为驼峰格式
+	 * 
+	 * 先将字段名无条件转换成小写字母,然后再转成驼峰格式,适用于 oracle 这类字段名是大写字母的数据库
+	 * 
+	 * 如果是 mysql 数据库,建议使用: setModelAndRecordFieldNameToCamelCase(false);
+	 */
+	public static void setModelAndRecordFieldNameToCamelCase() {
+		setModelAndRecordFieldNameToCamelCase(true);
+	}
+	
 	public static void setToJsonFactory(Function<Object, ToJson<?>> toJsonFactory) {
 		JFinalJsonKit.toJsonFactory = toJsonFactory;
 	}