查询A库数据插入至B库中
来源:互联网 发布:ios内购软件 编辑:程序博客网 时间:2024/06/06 01:41
***********任务需求*********************************
从A系统中查询出信息插入到B系统数据库中
知识点1---------不在同一个数据库操作
1.因为不止在一个数据库中操作,所以要配置多个数据源.
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:removeAbandoned="${jdbc.removeAbandoned}" p:removeAbandonedTimeout="${jdbc.removeAbandonedTimeout}"
p:maxWait="${jdbc.maxWait}"
p:username="${jdbc.username}" p:password="${jdbc.password}"/>
一开始的想法是再复制一个,如下
<context:property-placeholder location="classpath:jdbc1.properties"/>
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:removeAbandoned="${jdbc.removeAbandoned}" p:removeAbandonedTimeout="${jdbc.removeAbandonedTimeout}"
p:maxWait="${jdbc.maxWait}"
p:username="${jdbc.username}" p:password="${jdbc.password}"/>
但是
Spring容器仅允许最多定义一个PropertyPlaceholderConfigurer(或<context:property-placeholder/>),其余的会被Spring忽略掉
于是成了这样
<context:property-placeholder location="classpath:jdbc*.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:removeAbandoned="${jdbc.removeAbandoned}" p:removeAbandonedTimeout="${jdbc.removeAbandonedTimeout}"
p:maxWait="${jdbc.maxWait}"
p:username="${jdbc.username}" p:password="${jdbc.password}"/>
<!-- 第二个数据源 -->
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc1.driverClassName}" p:url="${jdbc1.url}"
p:removeAbandoned="${jdbc1.removeAbandoned}" p:removeAbandonedTimeout="${jdbc1.removeAbandonedTimeout}"
p:maxWait="${jdbc1.maxWait}"
p:username="${jdbc1.username}" p:password="${jdbc1.password}"/>
数据源的配置文件格式大致如下(当然两份文件配置不一样):
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@***.***.***.100:1521:databaseName
jdbc.username=user
jdbc.password=pass
jdbc.maxWait=60000
jdbc.removeAbandoned=true
jdbc.removeAbandonedTimeout=180
实际中可能***.***.***.100是一个数据地址,***.***.***.120是一个数据库地址,
因为使用JdbcTemplate,给其配置一个数据源,刚开始是这样写的:
<bean id="jdbcTemplate1" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource1">
<ref local="dataSource1" />
</property>
</bean>
而name="dataSource"中dataSource是预定义的,这样是不行的,然后成了这样
<!-- 第二个数据源的jdbcTemplate配置的数据源 -->
<bean id="jdbcTemplate1" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource"> <!--dataSource是预定义的,不能改为dataSource1 -->
<ref local="dataSource1" />
</property>
</bean>
<!-- 第二个数据源jdbcTemplate1 -->
<bean id="accInfoToBfjServiceImpl"
class="cn.com.sandpay.amms.manage.dataSyn.service.impl.AccInfoToBfjServiceImpl">
<property name="jdbcTemplate" ref="jdbcTemplate1" /> <!jdbcTemplate,不能改为dataSource1 -->
</bean>
<!-- 第二个数据源事务管理 -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource1" />
</bean>
insert插入,update修改,delete删除需要进行事务管理。!切记!切记!切记!切记!切记!切记
数据源的事务管理:
<!-- <tx:annotation-driven transaction-manager="txManager"/>
这句话的作用是注册事务注解处理器,我这里没有在这里配置,是用注解配置的
@Transactional(value="txManager", propagation=Propagation.REQUIRES_NEW)
public void funName() {}
-->
知识点2-----------------JdbcTemplate的使用
这个因为在前面已经配置好了,这里的使用很简单
方法1
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
方法2
@Autowired private JdbcTemplate jdbcTemplate;
调用
jdbcTemplate.update(insertSql,params)
参数
private static String insertSql = "insert into tab_Name values("?,?,?");
Object[] params = dataList.get(i);
知识点3:-----------一个关于事务管理的,但是不懂,先不写了
从A系统中查询出信息插入到B系统数据库中
知识点1---------不在同一个数据库操作
1.因为不止在一个数据库中操作,所以要配置多个数据源.
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:removeAbandoned="${jdbc.removeAbandoned}" p:removeAbandonedTimeout="${jdbc.removeAbandonedTimeout}"
p:maxWait="${jdbc.maxWait}"
p:username="${jdbc.username}" p:password="${jdbc.password}"/>
一开始的想法是再复制一个,如下
<context:property-placeholder location="classpath:jdbc1.properties"/>
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:removeAbandoned="${jdbc.removeAbandoned}" p:removeAbandonedTimeout="${jdbc.removeAbandonedTimeout}"
p:maxWait="${jdbc.maxWait}"
p:username="${jdbc.username}" p:password="${jdbc.password}"/>
但是
Spring容器仅允许最多定义一个PropertyPlaceholderConfigurer(或<context:property-placeholder/>),其余的会被Spring忽略掉
于是成了这样
<context:property-placeholder location="classpath:jdbc*.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:removeAbandoned="${jdbc.removeAbandoned}" p:removeAbandonedTimeout="${jdbc.removeAbandonedTimeout}"
p:maxWait="${jdbc.maxWait}"
p:username="${jdbc.username}" p:password="${jdbc.password}"/>
<!-- 第二个数据源 -->
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc1.driverClassName}" p:url="${jdbc1.url}"
p:removeAbandoned="${jdbc1.removeAbandoned}" p:removeAbandonedTimeout="${jdbc1.removeAbandonedTimeout}"
p:maxWait="${jdbc1.maxWait}"
p:username="${jdbc1.username}" p:password="${jdbc1.password}"/>
数据源的配置文件格式大致如下(当然两份文件配置不一样):
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@***.***.***.100:1521:databaseName
jdbc.username=user
jdbc.password=pass
jdbc.maxWait=60000
jdbc.removeAbandoned=true
jdbc.removeAbandonedTimeout=180
实际中可能***.***.***.100是一个数据地址,***.***.***.120是一个数据库地址,
因为使用JdbcTemplate,给其配置一个数据源,刚开始是这样写的:
<bean id="jdbcTemplate1" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource1">
<ref local="dataSource1" />
</property>
</bean>
而name="dataSource"中dataSource是预定义的,这样是不行的,然后成了这样
<!-- 第二个数据源的jdbcTemplate配置的数据源 -->
<bean id="jdbcTemplate1" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource"> <!--dataSource是预定义的,不能改为dataSource1 -->
<ref local="dataSource1" />
</property>
</bean>
<!-- 第二个数据源jdbcTemplate1 -->
<bean id="accInfoToBfjServiceImpl"
class="cn.com.sandpay.amms.manage.dataSyn.service.impl.AccInfoToBfjServiceImpl">
<property name="jdbcTemplate" ref="jdbcTemplate1" /> <!jdbcTemplate,不能改为dataSource1 -->
</bean>
<!-- 第二个数据源事务管理 -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource1" />
</bean>
insert插入,update修改,delete删除需要进行事务管理。!切记!切记!切记!切记!切记!切记
数据源的事务管理:
<!-- <tx:annotation-driven transaction-manager="txManager"/>
这句话的作用是注册事务注解处理器,我这里没有在这里配置,是用注解配置的
@Transactional(value="txManager", propagation=Propagation.REQUIRES_NEW)
public void funName() {}
-->
知识点2-----------------JdbcTemplate的使用
这个因为在前面已经配置好了,这里的使用很简单
方法1
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
方法2
@Autowired private JdbcTemplate jdbcTemplate;
调用
jdbcTemplate.update(insertSql,params)
参数
private static String insertSql = "insert into tab_Name values("?,?,?");
Object[] params = dataList.get(i);
知识点3:-----------一个关于事务管理的,但是不懂,先不写了
0 0
- 查询A库数据插入至B库中
- 查询A表数据插入到B表中
- 简单存储过程:从表B中查询出数据插入A中
- MySQL将表a中查询的数据插入到表b中
- mysql数据库从A表查询数据插入到B表中
- oracle中查询出A表的结果,并将A表中的数据插入到B表中,对于A表中已经存在的B表数据不在插入
- sql server 将A数据库中a表的数据插入B数据库中的b表
- 查询A表中的数据不在B表中
- 查询A、B表中,A表中B表没有的数据
- 使用A表中的数据插入到B表中(B表已经存在)
- oracle,把A表在B表没有的字段数据插入到B中
- 表B 数据 插入表A
- 插入数据a表到b表
- 把表a数据插入表b
- SQL_如何实现用户A的表A数据插入到用户B的表B中?
- Oracle中如何把A表一列的数据插入到B表的一列中
- 将A表中的数据更新或插入到B表中 id作为关联
- sql 把a表的数据插入b表中,where某一个字段相同
- Jupyter notebook 增加Python2.7
- UVA1626 简单DP
- linux硬盘分区格式化及挂载
- POJ 1753 Flip Game (枚举)
- 【学习总结】线程间锁机制
- 查询A库数据插入至B库中
- 浅谈linux系统下的进程通信之管道pipe
- 为什么php开发网站比javaweb简单很多很多,javaweb却还占有很大市场? - 请在web发展历史中找答案
- [JAVA] 多线程
- intersectLineMesh3d
- idea破解
- Linux下安装Lnmp环境之Mysql(二)
- mysql插入中文乱码问题
- 表单取消监听数据变化