update
This commit is contained in:
parent
3fb6e95bb9
commit
747e6bdcd0
4
pom.xml
4
pom.xml
|
|
@ -15,7 +15,7 @@
|
|||
<!-- 编译jdk版本 -->
|
||||
<jdk.version>1.7</jdk.version>
|
||||
<!-- 依赖版本 -->
|
||||
<spring.version>4.3.6.RELEASE</spring.version>
|
||||
<spring.version>4.3.7.RELEASE</spring.version>
|
||||
<shiro.version>1.3.2</shiro.version>
|
||||
<log4j2.version>2.7</log4j2.version>
|
||||
<beetlsql.version>2.8.5</beetlsql.version>
|
||||
|
|
@ -285,7 +285,7 @@
|
|||
<!-- 生产环境 -->
|
||||
<id>production</id>
|
||||
<properties>
|
||||
<profiles.active>production</profiles.active>
|
||||
<profiles.active>prod</profiles.active>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
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
|
||||
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.core.engine.EmptyExpressionFunction
|
||||
FN.isNotEmpty = org.beetl.sql.core.engine.NotEmptyExpressionFunction
|
||||
FN.db.testNull = org.beetl.sql.core.engine.TestNullFunction
|
||||
FN.db.dynamicSql = org.beetl.sql.core.engine.DynamicSqlFunction
|
||||
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
|
||||
FN.orm.lazyMany=org.beetl.sql.core.orm.LazyORMManyEntityFunction
|
||||
FN.orm.lazySingle=org.beetl.sql.core.orm.LazyORMSingleEntityFunction
|
||||
TAG.trim = org.beetl.sql.core.engine.TrimTag
|
||||
TAG.pageTag = org.beetl.sql.core.engine.PageQueryTag
|
||||
TAG.pageIgnoreTag= org.beetl.sql.core.engine.PageQueryIgnoreTag
|
||||
TAG.where= org.beetl.sql.core.engine.WhereTag
|
||||
ERROR_HANDLER = org.beetl.sql.core.engine.BeetlSQLTemplateExceptionHandler
|
||||
PRODUCT_MODE = true
|
||||
OFFSET_START_ZERO = false
|
||||
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
|
||||
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.core.engine.EmptyExpressionFunction
|
||||
FN.isNotEmpty = org.beetl.sql.core.engine.NotEmptyExpressionFunction
|
||||
FN.db.testNull = org.beetl.sql.core.engine.TestNullFunction
|
||||
FN.db.dynamicSql = org.beetl.sql.core.engine.DynamicSqlFunction
|
||||
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
|
||||
FN.orm.lazyMany=org.beetl.sql.core.orm.LazyORMManyEntityFunction
|
||||
FN.orm.lazySingle=org.beetl.sql.core.orm.LazyORMSingleEntityFunction
|
||||
TAG.trim = org.beetl.sql.core.engine.TrimTag
|
||||
TAG.pageTag = org.beetl.sql.core.engine.PageQueryTag
|
||||
TAG.pageIgnoreTag= org.beetl.sql.core.engine.PageQueryIgnoreTag
|
||||
TAG.where= org.beetl.sql.core.engine.WhereTag
|
||||
ERROR_HANDLER = org.beetl.sql.core.engine.BeetlSQLTemplateExceptionHandler
|
||||
PRODUCT_MODE = true
|
||||
OFFSET_START_ZERO = false
|
||||
|
|
@ -1,128 +1,128 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-4.3.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
|
||||
http://www.springframework.org/schema/tx
|
||||
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd ">
|
||||
|
||||
<!-- 连接池配置文件 -->
|
||||
<bean id="propertyConfigurer" class="com.smallchill.core.toolbox.support.EncryptablePropertyPlaceholder">
|
||||
<property name="locations">
|
||||
<list>
|
||||
<value>classpath:config.properties</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- base dataSource -->
|
||||
<bean id="baseDataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
|
||||
|
||||
<!-- 配置初始化大小、最小、最大 -->
|
||||
<property name="initialSize" value="${druid.initialSize}" />
|
||||
<property name="maxActive" value="${druid.maxActive}" />
|
||||
<property name="minIdle" value="${druid.minIdle}" />
|
||||
|
||||
<!-- 配置获取连接等待超时的时间 -->
|
||||
<property name="maxWait" value="${druid.maxWait}" />
|
||||
|
||||
<!-- 用来检测连接是否有效的sql,要求是一个查询语句 -->
|
||||
<property name="validationQuery" value="SELECT 'x' from dual" />
|
||||
|
||||
<!-- 申请连接的时候检测,如果空闲时间大于 -->
|
||||
<!-- 建议配置为true,不影响性能,并且保证安全性 -->
|
||||
<property name="testWhileIdle" value="true" />
|
||||
|
||||
<!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
|
||||
<property name="testOnBorrow" value="false" />
|
||||
|
||||
<!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
|
||||
<property name="testOnReturn" value="false" />
|
||||
|
||||
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
|
||||
<property name="timeBetweenEvictionRunsMillis" value="600000" />
|
||||
|
||||
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
|
||||
<property name="minEvictableIdleTimeMillis" value="300000" />
|
||||
|
||||
<!-- 超过时间限制是否回收 -->
|
||||
<property name="removeAbandoned" value="true" />
|
||||
|
||||
<!-- 超时时间;单位为秒。180秒=3分钟 -->
|
||||
<property name="removeAbandonedTimeout" value="1800" />
|
||||
|
||||
<!-- 关闭abanded连接时输出错误日志 -->
|
||||
<property name="logAbandoned" value="false" />
|
||||
|
||||
<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
|
||||
<property name="filters" value="mergeStat" />
|
||||
</bean>
|
||||
|
||||
<!-- 主数据源 -->
|
||||
<bean id="dataSource" parent="baseDataSource" init-method="init">
|
||||
<property name="driverClassName" value="${encrypt.master.driver}" />
|
||||
<property name="url" value="${encrypt.master.url}" />
|
||||
<property name="username" value="${encrypt.master.username}" />
|
||||
<property name="password" value="${encrypt.master.password}" />
|
||||
</bean>
|
||||
|
||||
<!-- 多数据源 -->
|
||||
<!--<bean id="otherSource" parent="baseDataSource" init-method="init">
|
||||
<property name="driverClassName" value="${other.driver}" />
|
||||
<property name="url" value="${other.url}" />
|
||||
<property name="username" value="${other.username}" />
|
||||
<property name="password" value="${other.password}" />
|
||||
</bean>-->
|
||||
|
||||
|
||||
<!-- 配置 Annotation 驱动,扫描@Transactional注解的类定义事务 -->
|
||||
<!-- <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> -->
|
||||
<!-- 如果 "proxy-target-class" 属值被设置为 "true",那么基于类的代理将起作用(这时需要CGLIB库cglib.jar在CLASSPATH中)。如果 "proxy-target-class" 属值被设置为 "false" 或者这个属性被省略,那么标准的JDK基于接口的代理将起作用。 -->
|
||||
<!-- 启用CGliB -->
|
||||
<!-- <aop:aspectj-autoproxy proxy-target-class="true"/> -->
|
||||
|
||||
|
||||
<!-- 主数据库事务配置 -->
|
||||
|
||||
<!-- 事务管理配置 -->
|
||||
<bean id="transactionManager"
|
||||
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
</bean>
|
||||
|
||||
<!-- 拦截器方式 -->
|
||||
<tx:advice id="txAdvice" transaction-manager="transactionManager">
|
||||
<tx:attributes>
|
||||
<tx:method name="list*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="find*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="query*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="save*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="add*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="create*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="change*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="eidt*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="remove*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="update*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="saveOrUpdate*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="delete*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="grant*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="modify*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<!-- <tx:method name="*" propagation="REQUIRED" /> -->
|
||||
</tx:attributes>
|
||||
</tx:advice>
|
||||
|
||||
|
||||
<!-- AOP 配置 -->
|
||||
<aop:config>
|
||||
<!-- 第一个*代表所有的返回值类型;第二个*代表所有的类;第三个*代表类所有方法;..代表子或者孙子包;最后一个..代表所有的参数 -->
|
||||
<aop:pointcut id="serviceMethods" expression="execution(* com.smallchill.*..service.*.*(..))" />
|
||||
<aop:advisor id="txAdvisor" pointcut-ref="serviceMethods" advice-ref="txAdvice" order="1" />
|
||||
</aop:config>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-4.3.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
|
||||
http://www.springframework.org/schema/tx
|
||||
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd ">
|
||||
|
||||
<!-- 连接池配置文件 -->
|
||||
<bean id="propertyConfigurer" class="com.smallchill.core.toolbox.support.EncryptablePropertyPlaceholder">
|
||||
<property name="locations">
|
||||
<list>
|
||||
<value>classpath:config.properties</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- base dataSource -->
|
||||
<bean id="baseDataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
|
||||
|
||||
<!-- 配置初始化大小、最小、最大 -->
|
||||
<property name="initialSize" value="${druid.initialSize}" />
|
||||
<property name="maxActive" value="${druid.maxActive}" />
|
||||
<property name="minIdle" value="${druid.minIdle}" />
|
||||
|
||||
<!-- 配置获取连接等待超时的时间 -->
|
||||
<property name="maxWait" value="${druid.maxWait}" />
|
||||
|
||||
<!-- 用来检测连接是否有效的sql,要求是一个查询语句 -->
|
||||
<property name="validationQuery" value="SELECT 'x' from dual" />
|
||||
|
||||
<!-- 申请连接的时候检测,如果空闲时间大于 -->
|
||||
<!-- 建议配置为true,不影响性能,并且保证安全性 -->
|
||||
<property name="testWhileIdle" value="true" />
|
||||
|
||||
<!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
|
||||
<property name="testOnBorrow" value="false" />
|
||||
|
||||
<!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
|
||||
<property name="testOnReturn" value="false" />
|
||||
|
||||
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
|
||||
<property name="timeBetweenEvictionRunsMillis" value="600000" />
|
||||
|
||||
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
|
||||
<property name="minEvictableIdleTimeMillis" value="300000" />
|
||||
|
||||
<!-- 超过时间限制是否回收 -->
|
||||
<property name="removeAbandoned" value="true" />
|
||||
|
||||
<!-- 超时时间;单位为秒。180秒=3分钟 -->
|
||||
<property name="removeAbandonedTimeout" value="1800" />
|
||||
|
||||
<!-- 关闭abanded连接时输出错误日志 -->
|
||||
<property name="logAbandoned" value="false" />
|
||||
|
||||
<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
|
||||
<property name="filters" value="mergeStat" />
|
||||
</bean>
|
||||
|
||||
<!-- 主数据源 -->
|
||||
<bean id="dataSource" parent="baseDataSource" init-method="init">
|
||||
<property name="driverClassName" value="${encrypt.master.driver}" />
|
||||
<property name="url" value="${encrypt.master.url}" />
|
||||
<property name="username" value="${encrypt.master.username}" />
|
||||
<property name="password" value="${encrypt.master.password}" />
|
||||
</bean>
|
||||
|
||||
<!-- 多数据源 -->
|
||||
<!--<bean id="otherSource" parent="baseDataSource" init-method="init">
|
||||
<property name="driverClassName" value="${other.driver}" />
|
||||
<property name="url" value="${other.url}" />
|
||||
<property name="username" value="${other.username}" />
|
||||
<property name="password" value="${other.password}" />
|
||||
</bean>-->
|
||||
|
||||
|
||||
<!-- 配置 Annotation 驱动,扫描@Transactional注解的类定义事务 -->
|
||||
<!-- <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> -->
|
||||
<!-- 如果 "proxy-target-class" 属值被设置为 "true",那么基于类的代理将起作用(这时需要CGLIB库cglib.jar在CLASSPATH中)。如果 "proxy-target-class" 属值被设置为 "false" 或者这个属性被省略,那么标准的JDK基于接口的代理将起作用。 -->
|
||||
<!-- 启用CGliB -->
|
||||
<!-- <aop:aspectj-autoproxy proxy-target-class="true"/> -->
|
||||
|
||||
|
||||
<!-- 主数据库事务配置 -->
|
||||
|
||||
<!-- 事务管理配置 -->
|
||||
<bean id="transactionManager"
|
||||
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
</bean>
|
||||
|
||||
<!-- 拦截器方式 -->
|
||||
<tx:advice id="txAdvice" transaction-manager="transactionManager">
|
||||
<tx:attributes>
|
||||
<tx:method name="list*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="find*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="query*" propagation="REQUIRED" read-only="true" />
|
||||
<tx:method name="save*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="add*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="create*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="change*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="eidt*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="remove*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="update*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="saveOrUpdate*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="delete*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="grant*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<tx:method name="modify*" propagation="REQUIRED" rollback-for="RuntimeException" />
|
||||
<!-- <tx:method name="*" propagation="REQUIRED" /> -->
|
||||
</tx:attributes>
|
||||
</tx:advice>
|
||||
|
||||
|
||||
<!-- AOP 配置 -->
|
||||
<aop:config>
|
||||
<!-- 第一个*代表所有的返回值类型;第二个*代表所有的类;第三个*代表类所有方法;..代表子或者孙子包;最后一个..代表所有的参数 -->
|
||||
<aop:pointcut id="serviceMethods" expression="execution(* com.smallchill.*..service.*.*(..))" />
|
||||
<aop:advisor id="txAdvisor" pointcut-ref="serviceMethods" advice-ref="txAdvice" order="1" />
|
||||
</aop:config>
|
||||
|
||||
</beans>
|
||||
|
|
@ -1,28 +1,22 @@
|
|||
package com.smallchill.test.beetlsql;
|
||||
|
||||
import com.smallchill.core.beetl.ReportInterceptor;
|
||||
import com.smallchill.core.toolbox.CMap;
|
||||
import com.smallchill.core.toolbox.kit.CharsetKit;
|
||||
import org.beetl.sql.core.*;
|
||||
import org.beetl.sql.core.db.PostgresStyle;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
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.PostgresStyle;
|
||||
import org.junit.Test;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import com.smallchill.core.beetl.ReportInterceptor;
|
||||
import com.smallchill.core.toolbox.CMap;
|
||||
import com.smallchill.core.toolbox.kit.CharsetKit;
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public class BeetlTest {
|
||||
|
||||
@Test
|
||||
//@Test
|
||||
public void test() {
|
||||
List<Map> list = getSqlManager().execute("select * from blade_notice where id = #{id}", Map.class, CMap.init().set("id", 1), 1, 10);
|
||||
System.out.println(list);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user