基于xml配置插入数据库数据例子(三)
16.Util
package net.atpco.dds.offline.filing.common.datamapper.binder;
public class Util {
private static String userId;
public static String getUserId() {
return userId;
}
public static void setUserId(String userId) {
Util.userId = userId;
}
}
17.SpringDataLoadConfiguration.xml
<?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:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<bean id="dataLoadDAO" class="net.atpco.dds.offline.filing.common.datamapper.binder.DataLoadDAO"/>
</beans>
package net.atpco.dds.offline.filing.common.datamapper.parser;
18.ClassConfig
package net.atpco.dds.offline.filing.common.datamapper.parser;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "classConfig")
public class ClassConfig implements Cloneable {
private String id;
private String schemaName;
private String schemaPropName;
private String tableName;
private String className;
private List<PropertyConfig> propertyConfigs = new ArrayList<PropertyConfig>();
public String getId() {
return id;
}
@XmlAttribute(name = "id")
public void setId(final String id) {
this.id = id;
}
public String getSchemaName() {
return schemaName;
}
/**
* Used to hold the schema name fetched from the property schema property name
* @param schemaName
*/
public void setSchemaName(final String schemaName) {
this.schemaName = schemaName;
}
public String getSchemaPropName() {
return schemaPropName;
}
@XmlAttribute(name = "schemaPropName")
public void setSchemaPropName(final String schemaPropName) {
this.schemaPropName = schemaPropName;
}
public String getTableName() {
return tableName;
}
@XmlAttribute(name = "tableName")
public void setTableName(final String tableName) {
this.tableName = tableName.trim().toUpperCase();
}
public String getClassName() {
return className;
}
@XmlAttribute(name = "className")
public void setClassName(final String className) {
this.className = className;
}
public List<PropertyConfig> getPropertyConfigs() {
return propertyConfigs;
}
@XmlElement(name = "propertyConfig", type = PropertyConfig.class)
public void setPropertyConfigs(final List<PropertyConfig> propertyConfigs) {
this.propertyConfigs = propertyConfigs;
}
@Override
public String toString() {
final StringBuilder obj = new StringBuilder(512);
obj.append(" \n\n Id : ");
obj.append(getId());
obj.append(" schemaName: ");
obj.append(getSchemaName());
obj.append(" tableName: " );
obj.append(getTableName());
obj.append(" className: " );
obj.append(getClassName());
obj.append(" \n Property Configurations : \n [");
for (final PropertyConfig config : getPropertyConfigs()) {
obj.append("\n \tProperty Name: ").append(config.getName());
obj.append(" \tColumn Name: ").append(config.getColumnName());
obj.append(" \tJava Type: ").append(config.getJavaType());
obj.append(" \tInclude Clause: ").append(config.getIncludeClause());
}
obj.append(" \n] ");
return obj.toString();
}
}
19.PropertyConfig
package net.atpco.dds.offline.filing.common.datamapper.parser;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Holds the property information like method name, sql type and java type
*
* @author atp1axi
* @version 1.0
*
*/
@XmlRootElement(name = "propertyConfig")
public class PropertyConfig {
private String name;
private String columnName;
private String javaType;
private String sqlType;
private String includeClause = "false";
public String getName() {
return name;
}
@XmlAttribute(name = "name")
public void setName(final String propertyName) {
this.name = propertyName;
}
public String getColumnName() {
return columnName;
}
@XmlAttribute(name = "columnName")
public void setColumnName(final String columnName) {
this.columnName = columnName.trim().toUpperCase();
}
public String getJavaType() {
return javaType;
}
@XmlAttribute(name = "javaType")
public void setJavaType(final String javaType) {
this.javaType = javaType;
}
public String getSqlType() {
return sqlType;
}
@XmlAttribute(name = "sqlType")
public void setSqlType(final String sqlType) {
this.sqlType = sqlType.trim().toUpperCase();
}
public String getIncludeClause() {
return includeClause;
}
@XmlAttribute(name = "includeClause")
public void setIncludeClause(final String includeClause) {
this.includeClause = includeClause;
}
@Override
public String toString() {
final StringBuilder stringBuilder = new StringBuilder(256);
stringBuilder.append(" propertyName - ").append(getName());
stringBuilder.append(" columnName - ").append(getColumnName());
stringBuilder.append(" javaType - ").append(getJavaType());
stringBuilder.append(" sqlType - ").append(getSqlType());
stringBuilder.append(" includeClause - ").append(getIncludeClause());
return stringBuilder.toString();
}
}
package net.atpco.dds.offline.filing.common.model;
20.FilingFCSegmentCorrection
package net.atpco.dds.offline.filing.common.model;
public class FilingFCSegmentCorrection {
/**inEffYr*/
private Integer inEffYr;
/**carrierCode*/
private String carrierCode;
/**ruleTariffCode*/
private String ruleTariffCode;
/**ruleCode*/
private String ruleCode;
private Integer seqNo;
private Integer zoneNO;
public Integer getSeqNo() {
return seqNo;
}
public void setSeqNo(Integer seqNo) {
this.seqNo = seqNo;
}
public Integer getZoneNO() {
return zoneNO;
}
public void setZoneNO(Integer zoneNO) {
this.zoneNO = zoneNO;
}
public Integer getInEffYr() {
return inEffYr;
}
public void setInEffYr(Integer inEffYr) {
this.inEffYr = inEffYr;
}
public String getCarrierCode() {
return carrierCode;
}
public void setCarrierCode(String carrierCode) {
this.carrierCode = carrierCode;
}
public String getRuleTariffCode() {
return ruleTariffCode;
}
public void setRuleTariffCode(String ruleTariffCode) {
this.ruleTariffCode = ruleTariffCode;
}
public String getRuleCode() {
return ruleCode;
}
public void setRuleCode(String ruleCode) {
this.ruleCode = ruleCode;
}
@Override
public String toString() {
StringBuffer sb=new StringBuffer();
sb.append("inEffYr="+inEffYr+",carrierCode="+carrierCode+
",ruleTariffCode="+ruleTariffCode+",ruleCode="+ruleCode
+",seqNo="+seqNo+",zoneNO="+zoneNO);
return sb.toString();
}
}
21.object-data-mappings.xml
<?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:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean id="dateMappingConfigurer"
class="net.atpco.dds.offline.filing.common.datamapper.binder.DataMappingConfigurer">
<constructor-arg index="0" ref="configPaths" />
<constructor-arg index="1" type="org.springframework.core.io.Resource"
value="classpath:/spring/DataLoadSchema.xsd"/>
</bean>
<util:list id="configPaths">
<value>classpath:/spring/fc_segment_crrn.xml</value>
<value>classpath:/spring/cat_segment_crrn.xml</value>
<value>classpath:/spring/cat_govt_filing_crrn.xml</value>
</util:list>
</beans>
22.fc_segment_crrn.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<classConfig id="fcSegmentCRRN" schemaPropName="gfsSchema"
tableName="FC_SEG_CRRN" className="net.atpco.dds.offline.filing.common.model.FilingFCSegmentCorrection">
<propertyConfig name="inEffYr" columnName="IN_EFF_YR" javaType="java.lang.Integer" sqlType="SMALLINT" includeClause="true"/>
<propertyConfig name="carrierCode" columnName="CXR_CD" javaType="java.lang.String" sqlType="CHAR" includeClause="true"/>
<propertyConfig name="ruleTariffCode" columnName="RULE_TAR_CD" javaType="java.lang.String" sqlType="CHAR" includeClause="true"/>
<propertyConfig name="ruleCode" columnName="RULE_CD" javaType="java.lang.String" sqlType="CHAR" includeClause="true"/>
<propertyConfig name="CREATE_SYSTEM" columnName="CREATE_ID" javaType="java.lang.String" sqlType="CHAR" />
</classConfig>
23.DataLoadSchema.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="classConfig">
<xs:complexType>
<xs:sequence>
<xs:element name="propertyConfig" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="columnName" use="required"/>
<xs:attribute type="xs:string" name="javaType" use="required"/>
<xs:attribute type="xs:string" name="sqlType" use="required"/>
<xs:attribute type="xs:string" name="includeClause" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="id" use="required"/>
<xs:attribute type="xs:string" name="schemaPropName" use="required"/>
<xs:attribute type="xs:string" name="tableName" use="required"/>
<xs:attribute type="xs:string" name="className" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
23.filingConfig.xml
<?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:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- This doesn‘t work in batch container, for BatchContainerContext.xml in batchContainer auto scan net.atpco -->
<context:component-scan base-package="net.atpco.dds" >
</context:component-scan>
<import resource="classpath:/spring/filingDataQueries.xml" />
<import resource="classpath:/spring/object-data-mappings.xml" />
<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:/gfs0.properties</value>
</list>
</property>
</bean>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/gfs0.properties</value>
</list>
</property>
</bean>
</beans>
24.object-data-mappings.xml
<?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:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean id="dateMappingConfigurer"
class="net.atpco.dds.offline.filing.common.datamapper.binder.DataMappingConfigurer">
<constructor-arg index="0" ref="configPaths" />
<constructor-arg index="1" type="org.springframework.core.io.Resource"
value="classpath:/spring/DataLoadSchema.xsd"/>
</bean>
<util:list id="configPaths">
<value>classpath:/spring/fc_segment_crrn.xml</value>
<value>classpath:/spring/cat_segment_crrn.xml</value>
<value>classpath:/spring/cat_govt_filing_crrn.xml</value>
</util:list>
</beans>
////////////////////////////Test Project/////////////////////////////////////////////////
25.TestFilingTextDataLoadService
/*
* Created on Jul 31, 2014
*
* Copyright 2014 ATPCO Confidential and Proprietary. All Rights Reserved.
*/
package net.atpco.dds.offline.filing.textload.service;
import java.util.List;
import junit.framework.Assert;
import net.atpco.dds.offline.filing.common.AbstractJUnitFilingIntegration;
import net.atpco.dds.offline.filing.common.datamapper.binder.DataLoadRequest;
import net.atpco.dds.offline.filing.common.datamapper.binder.DataLoadService;
import net.atpco.dds.offline.filing.common.datamapper.binder.Mode;
import net.atpco.dds.offline.filing.common.model.FilingFCSegmentCorrection;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
@ContextConfiguration(locations = {"classpath:/net/atpco/dds/offline/filing/textload/service/TestFilingTextDataLoadService.xml" })
@SuppressWarnings("unchecked")
public class TestFilingTextDataLoadService extends
AbstractJUnitFilingIntegration {
/** dataLoadService */
@Autowired
@Qualifier("dataLoadService")
private transient DataLoadService dataLoadService;
@Test
public void test() throws Exception {
final List<FilingFCSegmentCorrection> filingDataList = (List<FilingFCSegmentCorrection>) applicationContext
.getBean("fcSegCorrectionList");
DataLoadRequest dataLoadRequest = new DataLoadRequest(Mode.INSERT,
"fcSegmentCRRN", filingDataList);
boolean result = dataLoadService.update(dataLoadRequest);
Assert.assertTrue(result);
}
}
26.TestFilingTextDataLoadService.xml
<?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:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<util:list id="fcSegCorrectionList">
<ref bean="fcSegCorrection1"></ref>
<ref bean="fcSegCorrection2"></ref>
</util:list>
<bean id="fcSegCorrection1"
class="net.atpco.dds.offline.filing.common.model.FilingFCSegmentCorrection">
<property name="inEffYr" value="3019"></property>
<property name="carrierCode" value="AA"></property>
<property name="ruleTariffCode" value="AATCP"></property>
<property name="ruleCode" value="C"></property>
</bean>
<bean id="fcSegCorrection2"
class="net.atpco.dds.offline.filing.common.model.FilingFCSegmentCorrection">
<property name="inEffYr" value="3019"></property>
<property name="carrierCode" value="BB"></property>
<property name="ruleTariffCode" value="AATCP"></property>
<property name="ruleCode" value="C"></property>
</bean>
</beans>
27.AbstractJUnitFilingIntegration
package net.atpco.dds.offline.filing.common;
import net.atpco.dds.offline.filing.common.datamapper.binder.Util;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/spring/filingConfig.xml"
})
public class AbstractJUnitFilingIntegration extends GFSJunit {
static{
Util.setUserId(System.getProperty("user.name"));
}
}
28.GFSJunit
package net.atpco.dds.offline.filing.common;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.transaction.TransactionConfiguration;
@ContextConfiguration(locations = {
"classpath:/spring/net/atpco/dds/offline/common/gfs-jdbc-config.xml" })
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = false)
public abstract class GFSJunit extends
AbstractTransactionalJUnit4SpringContextTests {
}
29.gfs-jdbc-config.xml
<?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-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<tx:annotation-driven transaction-manager="txManager" />
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="namedJdbcTemplate" lazy-init="true"
class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg index="0" ref="dataSource" />
</bean>
<!-- ?????? -->
<bean id="dataSource1111111"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="${Url}"/>
<property name="username" value="${username}"/>
<property name="password" ref="ddns_password" />
</bean>
<!-- ??log4jdbc??????sql?? -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="net.sf.log4jdbc.DriverSpy"/>
<property name="url" value="jdbc:log4jdbc:mysql://localhost:3306/atpco"/>
<property name="username" value="${username}"/>
<property name="password" ref="ddns_password" />
</bean>
<bean id="dataSource2222222"
class="com.p6spy.engine.spy.P6DataSource" >
<constructor-arg>
<bean
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver" />
<property name="url" value="${Url}" />
<property name="username" value="${username}" />
<property name="password" ref="ddns_password" />
</bean>
</constructor-arg>
</bean>
<bean id="ddns_password" factory-bean="app_textEncrypter"
factory-method="decrypt">
<!-- ??????? -->
<constructor-arg index="0" value="${pass}" />
</bean>
<bean id="app_textEncrypter" class="com.atpco.textload.util.TextEncrypter">
<!-- ????????? -->
<constructor-arg index="0" value="t" />
</bean>
</beans>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。