首页 > 代码库 > Atitit 数据融合merge功能v3新特性.docx
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
Atitit 数据融合merge功能v3新特性.docx