不同的库的不同的表之间的数据移植4

//组装查询语句

if(CollectionUtils.isNotEmpty(basicList)){

Set<String> zuheSet = new HashSet<String>();

//获取的Map:{table1*table2:"A as D,B as E,C as F",table3*table4:"O as X,P as Y,Q as Z"}

Map<String, StringBuffer> sqlBuildMap = new HashMap<String, StringBuffer>();

for(Map<String, Object> map : basicList){

String tt = ObjectUtils.toString(map.get("t1"))+"#"+ObjectUtils.toString(map.get("t2"));

if(!zuheSet.contains(tt)){

zuheSet.add(tt);

StringBuffer subBuffer = new StringBuffer(32);

subBuffer.append(map.get("f1")+" as "+map.get("f2"));

sqlBuildMap.put(tt, subBuffer);

}else{

sqlBuildMap.get(tt).append(",").append(map.get("f1")+" as "+map.get("f2"));

}

}

				
时间: 2024-10-12 17:19:15

不同的库的不同的表之间的数据移植4的相关文章

不同的库的不同的表之间的数据移植2

* hql中的字段都是属性,表是类名 * String hql = select new map(tA.t1,tA.t2,tB.f1,tB.f2) from TableA tA,TableB tB where tA.id = tB.tid; * List<Map<String, Object>> basicList = getHibernateTemplate().find(hql); * * 或者sql查询 * [使用as是为了取别名.如果字段名和别名一致,就没有必要使用as了]

不同的库的不同的表之间的数据移植3

//1.现在手工构建查询结果 List<Map<String, Object>> basicList = new ArrayList<Map<String,Object>>(); String[] srcData = new String[]{ "table1,table2,A,D", "table1,table2,B,E", "table1,table2,C,F", "table3,ta

不同的库的不同的表之间的数据移植5

if(!sqlBuildMap.isEmpty()){                 Set<Entry<String, StringBuffer>> entrySet = sqlBuildMap.entrySet();                 for(Entry<String, StringBuffer> entry : entrySet){                     String key_table_src = entry.getKey().

不同的库的不同的表之间的数据移植7

//方法2:拼接sql语句进行插入操作 String insertFields = ""; String sql = "insert into "+ key_table_dest; String insertValues = ""; for(Map<String, Object> map : srcDataList){ insertFields = StringUtils.join(map.keySet(), ","

表之间的数据复制

我们可以在两张表之间使用insert实现简单的复制,(两张表的结构要相同)实例如下: SQL> create table T( 2  tid number(4), 3  tname varchar2(10) default 'abc', 4  tbirthday date default sysdate); 表已创建. SQL> insert into T values(1,'aaa','05-6月-89'); 已创建 1 行. SQL> insert into T values(2,'

数据库中两张表之间的数据同步实现思路(增加、删除、更新)Mysql、sqlserver

分别创建增加.删除.更新的触发器(Trigger)来达到两张表之间数据同步的目的. 1:数据同步增加:如有两张表--A表和B表,创建触发器使当A表插入数据后B表也同步插入数据.其中B表插入数据的字段需要同A表中的字段相对应. CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字段3 FROM INSERTED END 2.数据同步删除:如有

Oracle数据表之间的数据同步

保证两个数据表结构相同,如不相同只能同步相同字段; 只是思路,具体请根据需求修改. declare cursor csrn_mon is select * from table2; row_mon csrn_mon%rowtype; cursor csrn_loc is select * from table1; row_loc csrn_loc%rowtype; cursor csrn_del is select xh from table1 minus select xh from tabl

sql 从一个库中取某个表的数据导入到另一个库中相同结构的表中

sql 2008 从一个库中把 某个表中的数据导入到另一个库中的具有相同结构的表中 use 库1 go insert into  库1.dbo.表1  select * from  库2.dbo.表1 在这里会遇到一个问题:如果此表的主键或者其中有一个列使用了 IDENTITY(1,1) 自增长时,但又想手动为此列指定时 会出现一个错误.我的做法是先把插入表1的自增给取消,插入成功后在给改过来.

表与表之间建关系

一.一对多 1.确立表与表之间的关系 一定要换位思考(必须两方都考虑周全之后才能得出结论) 以员工表和部门表为例: 1.先站在员工表看能否有多个员工对应一个部门 翻译过来: 一个部门能否有多个员工 可以!!!(暂时只能确定员工单向多对一部门) 2.再站在部门表看能否有多个部门对应一个员工 翻译过来: 一个员工能否属于多个部门 不可以!!! 结论:员工表和部门表之间仅仅是单向的多对一 那么它们的表关系就是"一对多" 表关系中没有多对一一说,只有一对多 (无论是多对一还是一对多都叫&quo