多数据源修复mapper绑定的bug

pull/5/head
infin_caishuxiao 8 years ago
parent 160bf35c9c
commit 649f85cc65

@ -7,6 +7,12 @@ public class RiskStatsDTO {
int count; int count;
Date time; Date time;
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public String getRiskRuleId() { public String getRiskRuleId() {
return riskRuleId; return riskRuleId;
} }
@ -19,12 +25,4 @@ public class RiskStatsDTO {
public void setCount(int count) { public void setCount(int count) {
this.count = count; this.count = count;
} }
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
} }

@ -10,10 +10,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@Configuration @Configuration
@MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.prd"}, sqlSessionFactoryRef = "sqlSessionFactoryPrd") @MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.prd"}, sqlSessionFactoryRef = "sqlSessionFactoryPrd")
public class PrdDbConfig { public class PrdDbConfig {
static final String MAPPER_LOCATION = "classpath:mapping/prd/*.xml";
@Autowired @Autowired
@Qualifier("prd") @Qualifier("prd")
private DataSource prd; private DataSource prd;
@ -22,6 +25,9 @@ public class PrdDbConfig {
public SqlSessionFactory sqlSessionFactoryPrd() throws Exception { public SqlSessionFactory sqlSessionFactoryPrd() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(prd); factoryBean.setDataSource(prd);
factoryBean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION)
);
return factoryBean.getObject(); return factoryBean.getObject();
} }

@ -10,10 +10,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@Configuration @Configuration
@MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.stats"}, sqlSessionFactoryRef = "sqlSessionFactoryStats") @MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.stats"}, sqlSessionFactoryRef = "sqlSessionFactoryStats")
public class StatsDbConfig { public class StatsDbConfig {
static final String MAPPER_LOCATION = "classpath:mapping/stats/*.xml";
@Autowired @Autowired
@Qualifier("stats") @Qualifier("stats")
private DataSource stats; private DataSource stats;
@ -21,7 +24,10 @@ public class StatsDbConfig {
@Bean @Bean
public SqlSessionFactory sqlSessionFactoryStats() throws Exception { public SqlSessionFactory sqlSessionFactoryStats() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(stats); // 使用titan数据源, 连接titan库 factoryBean.setDataSource(stats);
factoryBean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION)
);
return factoryBean.getObject(); return factoryBean.getObject();
} }

@ -32,10 +32,8 @@ public class RiskCountStatisticsJobHandler extends IJobHandler {
public ReturnT<String> execute(String param) throws Exception { public ReturnT<String> execute(String param) throws Exception {
List<RiskStatsDTO> aa = service.countRecentRisk(); List<RiskStatsDTO> aa = service.countRecentRisk();
for (RiskStatsDTO a:aa) { for (RiskStatsDTO a:aa) {
XxlJobLogger.log(a.getRiskRuleId() + a.getCount() + a.getTime().toGMTString()); XxlJobLogger.log(a.getRiskRuleId() +", "+ a.getCount()+", "+ a.getTime());
} }
XxlJobLogger.log("beat at:");
return SUCCESS; return SUCCESS;
} }
} }

@ -8,10 +8,9 @@ spring.datasource.stats.username=jobopr
spring.datasource.stats.password=jobopr666 spring.datasource.stats.password=jobopr666
spring.datasource.stats.driver-class-name=com.mysql.jdbc.Driver spring.datasource.stats.driver-class-name=com.mysql.jdbc.Driver
# multi datasource no need declare here
#mybatis.mapper-locations=classpath:mapping/*.xml
mybatis.mapper-locations=classpath:mapping/*/*.xml #mybatis.type-aliases-package=com.infincash.statistics.risk.table
mybatis.type-aliases-package=com.infincash.statistics.risk.table
# web port # web port
server.port=9001 server.port=9001

@ -1,11 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.infincash.statistics.risk.mapper.prd.TRiskRuleMapper"> <mapper namespace="com.infincash.statistics.risk.mapper.prd.TRiskRuleMapper">
<select id="countRiskRule" resultType="com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO"> <resultMap id="riskStatsDTOMap" type="com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO">
<result property="riskRuleId" column="risk_rule_id" />
<result property="count" column="count1" />
<result property="time" column="time" />
</resultMap>
<!-- id, risk_rule_id, count(1) as count1, now() as time resultType="com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO" -->
<select id="countRiskRule" resultMap="riskStatsDTOMap" >
<![CDATA[
select select
risk_rule_id, count(1) as count, now() as time risk_rule_id, count(1) as count1, now() as time
from t_user_risk from t_user_risk
where user_id in (select user_id from t_user where DATE_SUB(NOW(),INTERVAL 1 HOUR) <= register_time) where user_id in (select user_id from t_user where DATE_SUB(NOW(),INTERVAL 1 HOUR) <= register_time)
GROUP by risk_rule_id order by risk_rule_id; GROUP by risk_rule_id order by risk_rule_id;
]]>
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save