Atitit 数据融合merge功能v3新特性.docx

 

 

Atitit 数据融合merge功能v3新特性.docx

 

1.1. 版本历史1

1.2. 生成sql结果1

1.3. 使用范例1

1.4. 核心代码1

 

1.1. 版本历史

V2增加了replace部分。

V3 修改为 ON DUPLICATE KEY UPDATE,并实现多字段更新模式。

 

1.2. 生成sql结果

5715,insert into s_member(department_id,member_no,duties_id,duties_name,phone,name,department,unit_id,email,status)values('00026256','00608509','008','数控中心操作工','15874836489','姜海波','汽车吊吊臂车间','1100','未知','1') ON DUPLICATE KEY UPDATE duties_id=VALUES(duties_id),duties_name=VALUES(duties_name),department=VALUES(department),unit_id=VALUES(unit_id),email=VALUES(email)

 

1.3. 使用范例

 /atiplat_restapi/src/com/attilax/user/UserSync4jonlye.java

// ,department=values(department)

String mergeUpdateExpress = Sqlbuilder1

.getMergeUpdateExpress("duties_id,duties_id,duties_name,department,unit_id,email,department_id,phone");

String sql = Sqlbuilder1.toMergeSql_hiPerf(m, "s_member", mergeUpdateExpress);

System.out.println(n + "," + sql);

 

 

1.4. 核心代码

/atiplat_restapi/src/com/attilax/sql/Sqlbuilder.java

 

public String getMergeUpdateExpress(String cols) {

String pre="ON DUPLICATE KEY UPDATE ";

String tmpl="@col@=VALUES(@col@)";

  

String[] col_arr=cols.trim().split(",");

int n=0;

for (String col : col_arr) {

n++;

if(n==1)

pre+=tmpl.replaceAll("@col@", col);

else

pre+=","+tmpl.replaceAll("@col@", col);

}

//,duties_id=VALUES(duties_id),duties_name=VALUES(duties_name),"

return pre;

}

 

public String toMergeSql_hiPerf(Map map, String table, String mergeExt) {

if(map.keySet().size()==0)

throw new RuntimeException("req_flted field is empty ");

MapfltedMap=fltMap_hiperf(map,table);

SqlKvUtil sqlKvUtil = new SqlKvUtil();

sqlKvUtil.prikey=prikey;

sqlKvUtil.ColumnsDefs=ColumnsDefs;

String[] a=sqlKvUtil.toInsertSqlKVPart(map);

String sql = "insert into @tab@(@cols@)values(@vals@) "+mergeExt;

sql = sql.replace("@tab@", table);

sql = sql.replace("@cols@", a[0]);

sql = sql.replace("@vals@", a[1]);

return sql;

}

 

 

 

 

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher  kok  虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

 

 

头衔:uke总部o2o负责人,全球网格化项目创始人,

uke交友协会会长  uke捕猎协会会长 Emir Uke部落首席大酋长,

 

uke宗教与文化融合事务部部长, uke宗教改革委员会副主席

uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,

 

uke 首席cto   软件部门总监 技术部副总监  研发部门总监主管  产品部副经理 项目部副经理   uke科技研究院院长uke软件培训大师

 

uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

 Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长

 

uke终身教育学校副校长   Uke医院 与医学院方面的创始人

 uec学院校长, uecip图像处理机器视觉专业系主任   uke文档检索专业系主任

Uke图像处理与机器视觉学院首席院长

Uke 户外运动协会理事长  度假村首席大村长   uke出版社编辑总编

 

转载请注明来源:attilax的专栏  ?http://www.cnblogs.com/attilax/

--Atiend  v8

 

 

posted @ 2017-04-05 21:08 attilaxAti 阅读(...) 评论(...) 编辑 收藏