update
This commit is contained in:
parent
c49c4cdc4f
commit
7363fe2bb1
|
|
@ -1,7 +1,7 @@
|
|||
ENGINE=org.beetl.sql.core.engine.SQLTemplateEngine
|
||||
DELIMITER_PLACEHOLDER_START=#{
|
||||
DELIMITER_PLACEHOLDER_END=}
|
||||
DELIMITER_STATEMENT_START=@
|
||||
ENGINE = org.beetl.sql.core.engine.SQLTemplateEngine
|
||||
DELIMITER_PLACEHOLDER_START = #{
|
||||
DELIMITER_PLACEHOLDER_END = }
|
||||
DELIMITER_STATEMENT_START = @
|
||||
DELIMITER_STATEMENT_END=
|
||||
HTML_TAG_SUPPORT = false
|
||||
CHARSET= UTF-8
|
||||
|
|
@ -9,12 +9,12 @@ FN.use = org.beetl.sql.core.engine.UseFunction
|
|||
FN.globalUse = org.beetl.sql.core.engine.GlobalUseFunction
|
||||
FN.text = org.beetl.sql.core.engine.TextFunction
|
||||
FN.join = org.beetl.sql.ext.JoinFunction
|
||||
FN.isEmpty=org.beetl.sql.ext.EmptyExpressionFunction
|
||||
FN.page=org.beetl.sql.core.engine.PageQueryFuntion
|
||||
FN.orm.many=org.beetl.sql.core.orm.ORMManyEntityFunction
|
||||
FN.orm.single=org.beetl.sql.core.orm.ORMSingleEntityFunction
|
||||
TAG.trim= org.beetl.sql.core.engine.TrimTag
|
||||
TAG.pageTag= org.beetl.sql.core.engine.PageQueryTag
|
||||
FN.isEmpty = org.beetl.sql.ext.EmptyExpressionFunction
|
||||
FN.page = org.beetl.sql.core.engine.PageQueryFuntion
|
||||
FN.orm.many = org.beetl.sql.core.orm.ORMManyEntityFunction
|
||||
FN.orm.single = org.beetl.sql.core.orm.ORMSingleEntityFunction
|
||||
TAG.trim = org.beetl.sql.core.engine.TrimTag
|
||||
TAG.pageTag = org.beetl.sql.core.engine.PageQueryTag
|
||||
ERROR_HANDLER = org.beetl.sql.core.engine.BeetlSQLTemplateExceptionHandler
|
||||
PRODUCT_MODE = false
|
||||
OFFSET_START_ZERO = false
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
ENGINE=org.beetl.sql.core.engine.SQLTemplateEngine
|
||||
DELIMITER_PLACEHOLDER_START=#{
|
||||
DELIMITER_PLACEHOLDER_END=}
|
||||
DELIMITER_STATEMENT_START=@
|
||||
ENGINE = org.beetl.sql.core.engine.SQLTemplateEngine
|
||||
DELIMITER_PLACEHOLDER_START = #{
|
||||
DELIMITER_PLACEHOLDER_END = }
|
||||
DELIMITER_STATEMENT_START = @
|
||||
DELIMITER_STATEMENT_END=
|
||||
HTML_TAG_SUPPORT = false
|
||||
CHARSET= UTF-8
|
||||
|
|
@ -9,12 +9,12 @@ FN.use = org.beetl.sql.core.engine.UseFunction
|
|||
FN.globalUse = org.beetl.sql.core.engine.GlobalUseFunction
|
||||
FN.text = org.beetl.sql.core.engine.TextFunction
|
||||
FN.join = org.beetl.sql.ext.JoinFunction
|
||||
FN.isEmpty=org.beetl.sql.ext.EmptyExpressionFunction
|
||||
FN.page=org.beetl.sql.core.engine.PageQueryFuntion
|
||||
FN.orm.many=org.beetl.sql.core.orm.ORMManyEntityFunction
|
||||
FN.orm.single=org.beetl.sql.core.orm.ORMSingleEntityFunction
|
||||
TAG.trim= org.beetl.sql.core.engine.TrimTag
|
||||
TAG.pageTag= org.beetl.sql.core.engine.PageQueryTag
|
||||
FN.isEmpty = org.beetl.sql.ext.EmptyExpressionFunction
|
||||
FN.page = org.beetl.sql.core.engine.PageQueryFuntion
|
||||
FN.orm.many = org.beetl.sql.core.orm.ORMManyEntityFunction
|
||||
FN.orm.single = org.beetl.sql.core.orm.ORMSingleEntityFunction
|
||||
TAG.trim = org.beetl.sql.core.engine.TrimTag
|
||||
TAG.pageTag = org.beetl.sql.core.engine.PageQueryTag
|
||||
ERROR_HANDLER = org.beetl.sql.core.engine.BeetlSQLTemplateExceptionHandler
|
||||
PRODUCT_MODE = true
|
||||
OFFSET_START_ZERO = false
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import java.io.OutputStreamWriter;
|
|||
import java.io.PrintWriter;
|
||||
import java.util.Map;
|
||||
|
||||
import com.smallchill.core.toolbox.kit.CharsetKit;
|
||||
import com.smallchill.core.toolbox.kit.FileKit;
|
||||
|
||||
/**
|
||||
|
|
@ -35,7 +36,7 @@ public abstract class BeetlMaker {
|
|||
* @param htmlPath html文件保存路径
|
||||
*/
|
||||
public static void makeHtml(String tlPath, Map<String, Object> paras, String htmlPath) {
|
||||
makeHtml(tlPath, paras, htmlPath, "UTF-8");
|
||||
makeHtml(tlPath, paras, htmlPath, CharsetKit.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,90 +1,90 @@
|
|||
/**
|
||||
* Copyright (c) 2011-2015, James Zhan 詹波 (jfinal@126.com).
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.smallchill.core.toolbox.kit;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
|
||||
public class HashKit {
|
||||
|
||||
private static java.security.SecureRandom random = new java.security.SecureRandom();
|
||||
|
||||
public static String md5(String srcStr){
|
||||
return hash("MD5", srcStr);
|
||||
}
|
||||
|
||||
public static String sha1(String srcStr){
|
||||
return hash("SHA-1", srcStr);
|
||||
}
|
||||
|
||||
public static String sha256(String srcStr){
|
||||
return hash("SHA-256", srcStr);
|
||||
}
|
||||
|
||||
public static String sha384(String srcStr){
|
||||
return hash("SHA-384", srcStr);
|
||||
}
|
||||
|
||||
public static String sha512(String srcStr){
|
||||
return hash("SHA-512", srcStr);
|
||||
}
|
||||
|
||||
public static String hash(String algorithm, String srcStr) {
|
||||
try {
|
||||
StringBuilder result = new StringBuilder();
|
||||
MessageDigest md = MessageDigest.getInstance(algorithm);
|
||||
byte[] bytes = md.digest(srcStr.getBytes("utf-8"));
|
||||
for (byte b : bytes) {
|
||||
String hex = Integer.toHexString(b&0xFF);
|
||||
if (hex.length() == 1)
|
||||
result.append("0");
|
||||
result.append(hex);
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static String toHex(byte[] bytes) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
for (byte b : bytes) {
|
||||
String hex = Integer.toHexString(b&0xFF);
|
||||
if (hex.length() == 1)
|
||||
result.append("0");
|
||||
result.append(hex);
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* md5 128bit 16bytes
|
||||
* sha1 160bit 20bytes
|
||||
* sha256 256bit 32bytes
|
||||
* sha384 384bit 48bites
|
||||
* sha512 512bit 64bites
|
||||
*/
|
||||
public static String generateSalt(int numberOfBytes) {
|
||||
byte[] salt = new byte[numberOfBytes];
|
||||
random.nextBytes(salt);
|
||||
return toHex(salt);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Copyright (c) 2011-2015, James Zhan 詹波 (jfinal@126.com).
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.smallchill.core.toolbox.kit;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
|
||||
public class HashKit {
|
||||
|
||||
private static java.security.SecureRandom random = new java.security.SecureRandom();
|
||||
|
||||
public static String md5(String srcStr){
|
||||
return hash("MD5", srcStr);
|
||||
}
|
||||
|
||||
public static String sha1(String srcStr){
|
||||
return hash("SHA-1", srcStr);
|
||||
}
|
||||
|
||||
public static String sha256(String srcStr){
|
||||
return hash("SHA-256", srcStr);
|
||||
}
|
||||
|
||||
public static String sha384(String srcStr){
|
||||
return hash("SHA-384", srcStr);
|
||||
}
|
||||
|
||||
public static String sha512(String srcStr){
|
||||
return hash("SHA-512", srcStr);
|
||||
}
|
||||
|
||||
public static String hash(String algorithm, String srcStr) {
|
||||
try {
|
||||
StringBuilder result = new StringBuilder();
|
||||
MessageDigest md = MessageDigest.getInstance(algorithm);
|
||||
byte[] bytes = md.digest(srcStr.getBytes(CharsetKit.UTF_8));
|
||||
for (byte b : bytes) {
|
||||
String hex = Integer.toHexString(b&0xFF);
|
||||
if (hex.length() == 1)
|
||||
result.append("0");
|
||||
result.append(hex);
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static String toHex(byte[] bytes) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
for (byte b : bytes) {
|
||||
String hex = Integer.toHexString(b&0xFF);
|
||||
if (hex.length() == 1)
|
||||
result.append("0");
|
||||
result.append(hex);
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* md5 128bit 16bytes
|
||||
* sha1 160bit 20bytes
|
||||
* sha256 256bit 32bytes
|
||||
* sha384 384bit 48bites
|
||||
* sha512 512bit 64bites
|
||||
*/
|
||||
public static String generateSalt(int numberOfBytes) {
|
||||
byte[] salt = new byte[numberOfBytes];
|
||||
random.nextBytes(salt);
|
||||
return toHex(salt);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ import com.smallchill.core.toolbox.support.WafRequestWrapper;
|
|||
public class HttpKit {
|
||||
private static PoolingHttpClientConnectionManager cm;
|
||||
private static String EMPTY_STR = "";
|
||||
private static String UTF_8 = "UTF-8";
|
||||
|
||||
private static void init() {
|
||||
if (cm == null) {
|
||||
|
|
@ -85,7 +84,7 @@ public class HttpKit {
|
|||
public static String post(String url, Map<String, Object> params) throws UnsupportedEncodingException {
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
ArrayList<NameValuePair> pairs = covertParams2NVPS(params);
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(pairs, UTF_8));
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(pairs, CharsetKit.UTF_8));
|
||||
return getResult(httpPost);
|
||||
}
|
||||
|
||||
|
|
@ -97,7 +96,7 @@ public class HttpKit {
|
|||
}
|
||||
|
||||
ArrayList<NameValuePair> pairs = covertParams2NVPS(params);
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(pairs, UTF_8));
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(pairs, CharsetKit.UTF_8));
|
||||
|
||||
return getResult(httpPost);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,6 +135,8 @@ public class URLKit {
|
|||
* @exception ToolBoxException UnsupportedEncodingException
|
||||
*/
|
||||
public static String encode(String url, String charset) {
|
||||
if (StrKit.isBlank(url))
|
||||
return StrKit.EMPTY;
|
||||
try {
|
||||
return URLEncoder.encode(url, charset);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
|
|
@ -150,6 +152,8 @@ public class URLKit {
|
|||
* @exception ToolBoxException UnsupportedEncodingException
|
||||
*/
|
||||
public static String decode(String url, String charset) {
|
||||
if (StrKit.isBlank(url))
|
||||
return StrKit.EMPTY;
|
||||
try {
|
||||
return URLDecoder.decode(url, charset);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ import com.smallchill.system.model.OperationLog;
|
|||
public class BladeLogFactory implements ILog {
|
||||
|
||||
public String[] logPatten() {
|
||||
String[] patten = { "login", "logout", "grant", "save", "update", "remove", "del", "delete", "restore" };
|
||||
String[] patten = { "login", "logout", "grant", "save", "update", "remove", "del", "delete", "restore", "change" };
|
||||
return patten;
|
||||
}
|
||||
|
||||
|
|
@ -52,7 +52,8 @@ public class BladeLogFactory implements ILog {
|
|||
.set("remove", "删除")
|
||||
.set("del", "删除")
|
||||
.set("delete", "删除")
|
||||
.set("restore", "还原");
|
||||
.set("restore", "还原")
|
||||
.set("restore", "变更");
|
||||
return rd;
|
||||
}
|
||||
|
||||
|
|
@ -79,7 +80,7 @@ public class BladeLogFactory implements ILog {
|
|||
OperationLog log = new OperationLog();
|
||||
log.setMethod(msg);
|
||||
log.setCreatetime(new Date());
|
||||
log.setSucceed((succeed)?"1":"0");
|
||||
log.setSucceed((succeed) ? "1" : "0");
|
||||
log.setUserid(Func.toStr(user.getId()));
|
||||
log.setLogname(logName);
|
||||
boolean temp = Blade.create(OperationLog.class).save(log);
|
||||
|
|
|
|||
|
|
@ -1,40 +1,50 @@
|
|||
#默认配置
|
||||
ENGINE=org.beetl.core.engine.FastRuntimeEngine
|
||||
DELIMITER_PLACEHOLDER_START=${
|
||||
DELIMITER_PLACEHOLDER_END=}
|
||||
#开始结束标签
|
||||
DELIMITER_STATEMENT_START=@
|
||||
DELIMITER_STATEMENT_END=null
|
||||
DIRECT_BYTE_OUTPUT = FALSE
|
||||
HTML_TAG_SUPPORT = true
|
||||
HTML_TAG_FLAG = blade:
|
||||
HTML_TAG_BINDING_ATTRIBUTE = var
|
||||
NATIVE_CALL = TRUE
|
||||
TEMPLATE_CHARSET = UTF-8
|
||||
ERROR_HANDLER = org.beetl.core.ConsoleErrorHandler
|
||||
NATIVE_SECUARTY_MANAGER= org.beetl.core.DefaultNativeSecurityManager
|
||||
MVC_STRICT = FALSE
|
||||
#资源配置,resource后的属性只限于特定ResourceLoader
|
||||
RESOURCE_LOADER=org.beetl.core.resource.ClasspathResourceLoader
|
||||
#classpath 根路径
|
||||
RESOURCE.root=/WEB-INF/view
|
||||
#是否检测文件变化
|
||||
RESOURCE.autoCheck= true
|
||||
#自定义脚本方法文件的Root目录和后缀
|
||||
RESOURCE.functionRoot = functions
|
||||
RESOURCE.functionSuffix = html
|
||||
#自定义标签文件Root目录和后缀
|
||||
RESOURCE.tagRoot = common/_widget
|
||||
RESOURCE.tagSuffix = tag
|
||||
##### 扩展 ##############
|
||||
TAG.trim= org.beetl.sql.core.engine.TrimTag
|
||||
## 内置的方法
|
||||
FN.date = org.beetl.ext.fn.DateFunction
|
||||
##内置的功能包
|
||||
FNP.strutil = org.beetl.ext.fn.StringUtil
|
||||
##内置的默认格式化函数
|
||||
FTC.java.util.Date = org.beetl.ext.format.DateFormat
|
||||
## 标签类
|
||||
TAG.include=org.beetl.ext.tag.IncludeTag
|
||||
##自定义函数
|
||||
FNP.tool =com.smallchill.common.beetl.BeetlTools
|
||||
#默认配置
|
||||
ENGINE=org.beetl.core.engine.FastRuntimeEngine
|
||||
|
||||
#开始结束占位符
|
||||
DELIMITER_PLACEHOLDER_START = ${
|
||||
DELIMITER_PLACEHOLDER_END = }
|
||||
|
||||
#开始结束标签
|
||||
DELIMITER_STATEMENT_START = @
|
||||
DELIMITER_STATEMENT_END = null
|
||||
|
||||
DIRECT_BYTE_OUTPUT = FALSE
|
||||
HTML_TAG_SUPPORT = true
|
||||
HTML_TAG_FLAG = blade:
|
||||
HTML_TAG_BINDING_ATTRIBUTE = var
|
||||
NATIVE_CALL = TRUE
|
||||
TEMPLATE_CHARSET = UTF-8
|
||||
ERROR_HANDLER = org.beetl.core.ConsoleErrorHandler
|
||||
NATIVE_SECUARTY_MANAGER= org.beetl.core.DefaultNativeSecurityManager
|
||||
MVC_STRICT = FALSE
|
||||
|
||||
#资源配置,resource后的属性只限于特定ResourceLoader
|
||||
RESOURCE_LOADER=org.beetl.core.resource.ClasspathResourceLoader
|
||||
|
||||
#classpath 根路径
|
||||
RESOURCE.root = /WEB-INF/view
|
||||
|
||||
#是否检测文件变化
|
||||
RESOURCE.autoCheck= true
|
||||
|
||||
#自定义脚本方法文件的Root目录和后缀
|
||||
RESOURCE.functionRoot = functions
|
||||
RESOURCE.functionSuffix = html
|
||||
|
||||
#自定义标签文件Root目录和后缀
|
||||
RESOURCE.tagRoot = common/_widget
|
||||
RESOURCE.tagSuffix = tag
|
||||
|
||||
##### 扩展 ##############
|
||||
TAG.trim= org.beetl.sql.core.engine.TrimTag
|
||||
## 内置的方法
|
||||
FN.date = org.beetl.ext.fn.DateFunction
|
||||
##内置的功能包
|
||||
FNP.strutil = org.beetl.ext.fn.StringUtil
|
||||
##内置的默认格式化函数
|
||||
FTC.java.util.Date = org.beetl.ext.format.DateFormat
|
||||
## 标签类
|
||||
TAG.include = org.beetl.ext.tag.IncludeTag
|
||||
##自定义函数
|
||||
FNP.tool = com.smallchill.common.beetl.BeetlTools
|
||||
|
|
@ -60,12 +60,11 @@
|
|||
<value>DisableCircularReferenceDetect</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="serializerFeatures">
|
||||
<!-- <property name="serializerFeatures">
|
||||
<list>
|
||||
<!-- 空字段也返回, 不需要的可以注释掉 -->
|
||||
<!-- <value>WriteMapNullValue</value> -->
|
||||
<value>WriteMapNullValue</value>
|
||||
</list>
|
||||
</property>
|
||||
</property> -->
|
||||
<property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"></property>
|
||||
</bean>
|
||||
</property>
|
||||
|
|
|
|||
|
|
@ -1,37 +1,38 @@
|
|||
package com.smallchill.test.beetlsql;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.beetl.sql.core.ClasspathLoader;
|
||||
import org.beetl.sql.core.DefaultNameConversion;
|
||||
import org.beetl.sql.core.Interceptor;
|
||||
import org.beetl.sql.core.SQLLoader;
|
||||
import org.beetl.sql.core.SQLManager;
|
||||
import org.beetl.sql.core.db.MySqlStyle;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.smallchill.core.beetl.ReportInterceptor;
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public class BeetlTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
List<Map> list = getSqlManager().execute("select 'test' t from dual", Map.class, null);
|
||||
System.out.println(list);
|
||||
|
||||
}
|
||||
|
||||
public SQLManager getSqlManager() {
|
||||
MySqlStyle style = new MySqlStyle();
|
||||
MySqlConnection cs = new MySqlConnection();
|
||||
SQLLoader loader = new ClasspathLoader("/beetlsql");
|
||||
SQLManager sql = new SQLManager(style, loader, cs, new DefaultNameConversion(), new Interceptor[] { new ReportInterceptor() });
|
||||
sql.getSqlLoader().setCharset("UTF-8");
|
||||
sql.getSqlLoader().setAutoCheck(true);
|
||||
return sql;
|
||||
}
|
||||
|
||||
}
|
||||
package com.smallchill.test.beetlsql;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.beetl.sql.core.ClasspathLoader;
|
||||
import org.beetl.sql.core.DefaultNameConversion;
|
||||
import org.beetl.sql.core.Interceptor;
|
||||
import org.beetl.sql.core.SQLLoader;
|
||||
import org.beetl.sql.core.SQLManager;
|
||||
import org.beetl.sql.core.db.MySqlStyle;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.smallchill.core.beetl.ReportInterceptor;
|
||||
import com.smallchill.core.toolbox.kit.CharsetKit;
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public class BeetlTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
List<Map> list = getSqlManager().execute("select 'test' t from dual", Map.class, null);
|
||||
System.out.println(list);
|
||||
|
||||
}
|
||||
|
||||
public SQLManager getSqlManager() {
|
||||
MySqlStyle style = new MySqlStyle();
|
||||
MySqlConnection cs = new MySqlConnection();
|
||||
SQLLoader loader = new ClasspathLoader("/beetlsql");
|
||||
SQLManager sql = new SQLManager(style, loader, cs, new DefaultNameConversion(), new Interceptor[] { new ReportInterceptor() });
|
||||
sql.getSqlLoader().setCharset(CharsetKit.UTF_8);
|
||||
sql.getSqlLoader().setAutoCheck(true);
|
||||
return sql;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user