做按组织关系汇总功能时,当数据量特别大,或者汇总组织特别多时,运行效率特别低,于是使用了merge into语句。

代码如下:

public void updateInsertData(DataSet dsl, String mxnm, DataSet dsc, DataSet dsr, String faslnm, DataSet dyxjDs, String thisBbnm, String tabname, DataSet glDs,String flnm,String dyzzNm,int hzbbStat){
//using后的sql
String queryDataSql = queryData(dsl, mxnm, dsc, dsr, faslnm, dyxjDs, thisBbnm, tabname, glDs); StringBuffer updateInsertSql = new StringBuffer();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
String createdTime = formatter.format(new Date());
String lastmodifiedTime = formatter.format(new Date());
String creator = GetBspInfo.getBspInfo().getUserId();
updateInsertSql.append("MERGE INTO FCDATA_"+mxnm +" DA ");
updateInsertSql.append("USING ("+queryDataSql + ") QU ");
updateInsertSql.append("ON ("); for (int y = 0; y < dsl.getCount(); y++) {
String wdmc = (String) dsl.getRecord(y).get("FCYSYS_BS");
if(!("ZZ".equals(wdmc))) {
updateInsertSql.append("DA.FC_" + wdmc + "_NM = QU.FC_" + wdmc + "_NM AND ");
}
} updateInsertSql.append(" DA.FC_ZZ_NM='" +dyzzNm+"' )");
updateInsertSql.append("WHEN MATCHED THEN ");
updateInsertSql.append("UPDATE SET DA.FC_QJS = ROUND(QU.FC_QJS,QU.FCBZL_DECN),");
updateInsertSql.append("DA.FC_LJS = ROUND(QU.FC_LJS,QU.FCBZL_DECN),DA.FC_NDS = ROUND(QU.FC_NDS,QU.FCBZL_DECN),");
updateInsertSql.append("DA.FC_LJS_C = ROUND(QU.FC_LJS_C,QU.FCBZL_DECN),DA.FC_NDS_C = ROUND(QU.FC_NDS_C,QU.FCBZL_DECN),");
updateInsertSql.append("DA.FC_QJS_C = ROUND(QU.FC_QJS_C,QU.FCBZL_DECN),DA.FC_NDS_1 = ROUND(QU.FC_NDS_1,QU.FCBZL_DECN),");
updateInsertSql.append("DA.FC_LJS_1 = ROUND(QU.FC_LJS_1,QU.FCBZL_DECN),DA.FC_QJS_1 = ROUND(QU.FC_QJS_1,QU.FCBZL_DECN),");
updateInsertSql.append("FC_SJLY='2',FC_HZLBNM='" + flnm + "',LASTMODIFIER='" + creator + "',LASTMODIFIEDTIME=");
updateInsertSql.append("(select to_date('").append(lastmodifiedTime).append("','YYYY-MM-DD HH24:MI:SS')from dual) ");
updateInsertSql.append("WHEN NOT MATCHED THEN INSERT(");
updateInsertSql.append("FC_ZZ_NM,FC_MXNM,FC_DANM,FC_BBDY,FC_LCST,");
for (int w = 0; w < dsl.getCount(); w++) {
String wdmc = (String) dsl.getRecord(w).get("FCYSYS_BS");
if (!("ZZ".equals(wdmc))) {
updateInsertSql.append("FC_" + wdmc + "_NM,");
}
}
updateInsertSql.append("FC_QJS,FC_NDS,FC_LJS,FC_QJS_C,FC_NDS_C,FC_LJS_C,FC_QJS_1,FC_NDS_1,FC_LJS_1,");
updateInsertSql.append("FC_SJLY,FC_HZLBNM,CREATOR,LASTMODIFIER,CREATEDTIME,LASTMODIFIEDTIME) ");
updateInsertSql.append(" VALUES( '" + dyzzNm + "','" + mxnm + "',substr(sys_guid(),0,4)||sys_guid(),'" + thisBbnm + "','");
updateInsertSql.append(hzbbStat + "',");
for (int w = 0; w < dsl.getCount(); w++) {
String wdmc = (String) dsl.getRecord(w).get("FCYSYS_BS");
if (!("ZZ".equals(wdmc))) {
updateInsertSql.append("QU.FC_" + wdmc + "_NM,");
}
} updateInsertSql.append("ROUND(QU.FC_QJS,QU.FCBZL_DECN),ROUND(QU.FC_NDS,QU.FCBZL_DECN),ROUND(QU.FC_LJS,QU.FCBZL_DECN),");
updateInsertSql.append("ROUND(QU.FC_QJS_C,QU.FCBZL_DECN),ROUND(QU.FC_NDS_C,QU.FCBZL_DECN),ROUND(QU.FC_LJS_C,QU.FCBZL_DECN),");
updateInsertSql.append("ROUND(QU.FC_QJS_1,QU.FCBZL_DECN),ROUND(QU.FC_NDS_1,QU.FCBZL_DECN),ROUND(QU.FC_LJS_1,QU.FCBZL_DECN),'");
updateInsertSql.append("2','" + flnm + "','");
updateInsertSql.append(creator + "','" + creator + "',");
updateInsertSql.append("(select to_date('").append(createdTime).append("','YYYY-MM-DD HH24:MI:SS')from dual),");
updateInsertSql.append("(select to_date('").append(lastmodifiedTime).append("','YYYY-MM-DD HH24:MI:SS')from dual) )"); this.executeUpdate(updateInsertSql.toString());
/********************merge into结束!!!!*************************/
}
public String queryData(DataSet dsl, String mxnm, DataSet dsc, DataSet dsr, String faslnm, DataSet dyxjDs, String thisBbnm, String tabname, DataSet glDs) {
boolean ifzb = false;//数据列中是否存在指标这个维度
for (int s = 0; s < dsc.getCount(); s++) {
String sjmc = (String) dsc.getRecord(s).get("FCYSYS_BS");
if (!("ZB".equals(sjmc))) {
ifzb = false;
} else {
ifzb = true;
break;
}
} //查询出下级组织报表的所有单元格数据,便于下面判断该数据是否在上级组织中有记录
StringBuffer sqlh = new StringBuffer(200);
sqlh.append(" SELECT FCBZL_DECN,");
for (int w = 0; w < dsl.getCount(); w++) {
String wdmc = (String) dsl.getRecord(w).get("FCYSYS_BS");
if (!("ZZ".equals(wdmc))) {
sqlh.append("FC_" + wdmc + "_NM,");
}
}
if (ifzb) {
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_QJS)");
sqlh.append(" ELSE SUM(NVL(FC_QJS, 0) * FCFLYS_BL) END AS FC_QJS, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_NDS)");
sqlh.append(" ELSE SUM(NVL(FC_NDS, 0) * FCFLYS_BL) END AS FC_NDS, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_LJS)");
sqlh.append(" ELSE SUM(NVL(FC_LJS, 0) * FCFLYS_BL) END AS FC_LJS, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_QJS_C)");
sqlh.append(" ELSE SUM(NVL(FC_QJS_C, 0) * FCFLYS_BL) END AS FC_QJS_C, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_NDS_C)");
sqlh.append(" ELSE SUM(NVL(FC_NDS_C, 0) * FCFLYS_BL) END AS FC_NDS_C, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_LJS_C)");
sqlh.append(" ELSE SUM(NVL(FC_LJS_C, 0) * FCFLYS_BL) END AS FC_LJS_C, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_QJS_1)");
sqlh.append(" ELSE SUM(NVL(FC_QJS_1, 0) * FCFLYS_BL) END AS FC_QJS_1, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_NDS_1)");
sqlh.append(" ELSE SUM(NVL(FC_NDS_1, 0) * FCFLYS_BL) END AS FC_NDS_1, ");
sqlh.append(" CASE WHEN YSYSXM_XMXZ='2' OR YSYSXM_XMXZ='3' THEN MAX(FC_LJS_1)");
sqlh.append(" ELSE SUM(NVL(FC_LJS_1, 0) * FCFLYS_BL) END AS FC_LJS_1");
} else {
sqlh.append("SUM(NVL(FC_QJS,0)*FCFLYS_BL) AS FC_QJS,SUM(NVL(FC_NDS,0)*FCFLYS_BL) AS FC_NDS,SUM(NVL(FC_LJS,0)*FCFLYS_BL) AS FC_LJS,");
sqlh.append("SUM(NVL(FC_QJS_1,0)*FCFLYS_BL) AS FC_QJS_1,SUM(NVL(FC_NDS_1,0)*FCFLYS_BL) AS FC_NDS_1,");
sqlh.append("SUM(NVL(FC_LJS_1,0)*FCFLYS_BL) AS FC_LJS_1,SUM(NVL(FC_QJS_C,0)*FCFLYS_BL) AS FC_QJS_C,SUM(NVL(FC_NDS_C,0)*FCFLYS_BL) AS FC_NDS_C,SUM(NVL(FC_LJS_C,0)*FCFLYS_BL) AS FC_LJS_C");
} sqlh.append(" FROM FCDATA_" + mxnm); /*本来是join fcbzh,但是后来调整为只汇总固定行,而fcirow里存的都是固定行,所以改为join fcirow*/
sqlh.append(" JOIN FCBZH_" + mxnm + " ON ");
//sqlh.append(" JOIN FCIROW ON "); for (int x = 0; x < dsr.getCount(); x++) {
String xxmc = (String) dsr.getRecord(x).get("FCYSYS_BS");
if (!("ZZ".equals(xxmc))) { sqlh.append(" FC_" + xxmc + "_NM = FCBZH_" + xxmc + "NM AND ");
//sqlh.append(" FC_" + xxmc + "_NM = FCIROW_" + xxmc + " AND "); }
}
sqlh.append(" FC_ZZ_NM = FCBZH_ZZNM AND ");
sqlh.append(" 1=1 JOIN FCBZL_" + mxnm + " ON ");
for (int s = 0; s < dsc.getCount(); s++) {
String sjmc = (String) dsc.getRecord(s).get("FCYSYS_BS");
if (!("ZB".equals(sjmc))) {
sqlh.append(" FC_" + sjmc + "_NM = FCBZL_" + sjmc + " AND ");
} else {
sqlh.append(" FC_" + sjmc + "_NM = FCBZL_" + sjmc + " AND ");
}
}
sqlh.append(" 1=1 ");
//指标这个维度数据结构不同,单独处理
if (ifzb) {
sqlh.append(" JOIN YSYSXM ON YSYSXM_XMUID = FC_ZB_NM ");
}
sqlh.append(" JOIN " + tabname + " ON FCFLYS_SJNM = FC_ZZ_NM ");
/*sqlh.append(" JOIN FCBBRW ON FCBBRW_ZZ=FC_ZZ_NM WHERE FC_BBDY = '" + thisBbnm + "' ");*/
//两张表同一个模型内码,但有一个归口表
sqlh.append(" JOIN FCBBRW ON FCBBRW_ZZ=FC_ZZ_NM AND FCBBRW_BBNM=FC_BBDY WHERE 1=1");
/*sqlh.append(" JOIN FCBBRW ON FCBBRW_ZZ=FC_ZZ_NM WHERE 1=1");*/
sqlh.append(" AND FCBZL_IFBL='0' AND FCBZH_SLNM='" + faslnm + "' AND FCBZL_SLNM='" + faslnm + "' AND FCBZL_DYNM='" + thisBbnm + "' AND FCBZH_DYNM='" + thisBbnm + "'");
sqlh.append(" AND FCBBRW_SLNM='" + faslnm + "' AND FCBBRW_BBNM ='" + thisBbnm + "' ");
if (glDs.getCount() > 2) {
sqlh.append(" AND FCBBRW_IFGL='1' ");
}
sqlh.append(" AND FC_ZZ_NM IN (");
//下级组织范围条件
for (int zz = 0; zz < dyxjDs.getCount(); zz++) {
String xjzznm = (String) dyxjDs.getRecord(zz).get("ZZNM");
if (zz == dyxjDs.getCount() - 1) {
sqlh.append("'" + xjzznm + "')");
} else {
sqlh.append("'" + xjzznm + "',");
}
}
sqlh.append(" AND FCBZH_ZZNM IN (");
//下级组织范围条件
for (int zz = 0; zz < dyxjDs.getCount(); zz++) {
String xjzznm = (String) dyxjDs.getRecord(zz).get("ZZNM");
if (zz == dyxjDs.getCount() - 1) {
sqlh.append("'" + xjzznm + "')");
} else {
sqlh.append("'" + xjzznm + "',");
}
}
sqlh.append(" GROUP BY ");
if (ifzb) {
sqlh.append(" YSYSXM_XMXZ,");
}
for (int y = 0; y < dsl.getCount(); y++) {
String wdmc = (String) dsl.getRecord(y).get("FCYSYS_BS");
if (!("ZZ".equals(wdmc))) {
sqlh.append("FC_" + wdmc + "_NM,");
}
}
sqlh.append("FCBZL_DECN");
return sqlh.toString();
}

运行处的sql语句如下:

MERGE INTO FCDATA_XS04 DA
USING (SELECT FCBZL_DECN,
FC_QYXM_NM,
FC_MB_NM,
FC_ZB_NM,
FC_LX_NM,
FC_QJ_NM,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_QJS)
ELSE
SUM(NVL(FC_QJS, 0) * FCFLYS_BL)
END AS FC_QJS,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_NDS)
ELSE
SUM(NVL(FC_NDS, 0) * FCFLYS_BL)
END AS FC_NDS,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_LJS)
ELSE
SUM(NVL(FC_LJS, 0) * FCFLYS_BL)
END AS FC_LJS,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_QJS_C)
ELSE
SUM(NVL(FC_QJS_C, 0) * FCFLYS_BL)
END AS FC_QJS_C,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_NDS_C)
ELSE
SUM(NVL(FC_NDS_C, 0) * FCFLYS_BL)
END AS FC_NDS_C,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_LJS_C)
ELSE
SUM(NVL(FC_LJS_C, 0) * FCFLYS_BL)
END AS FC_LJS_C,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_QJS_1)
ELSE
SUM(NVL(FC_QJS_1, 0) * FCFLYS_BL)
END AS FC_QJS_1,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_NDS_1)
ELSE
SUM(NVL(FC_NDS_1, 0) * FCFLYS_BL)
END AS FC_NDS_1,
CASE
WHEN YSYSXM_XMXZ = '' OR YSYSXM_XMXZ = '' THEN
MAX(FC_LJS_1)
ELSE
SUM(NVL(FC_LJS_1, 0) * FCFLYS_BL)
END AS FC_LJS_1
FROM FCDATA_XS04
JOIN FCBZH_XS04 ON FC_QYXM_NM = FCBZH_QYXMNM
AND FC_ZZ_NM = FCBZH_ZZNM
AND 1 = 1
JOIN FCBZL_XS04 ON FC_MB_NM = FCBZL_MB
AND FC_QJ_NM = FCBZL_QJ
AND FC_ZB_NM = FCBZL_ZB
AND FC_LX_NM = FCBZL_LX
AND 1 = 1
JOIN YSYSXM ON YSYSXM_XMUID = FC_ZB_NM
JOIN FCFLYS_ZZHZ ON FCFLYS_SJNM = FC_ZZ_NM
JOIN FCBBRW ON FCBBRW_ZZ = FC_ZZ_NM
AND FCBBRW_BBNM = FC_BBDY
WHERE 1 = 1
AND FCBZL_IFBL = ''
AND FCBZH_SLNM = 'f4f10134-ca32-4329-88fa-1e2e5ab5c47e'
AND FCBZL_SLNM = 'f4f10134-ca32-4329-88fa-1e2e5ab5c47e'
AND FCBZL_DYNM = '262ff333-8e40-47ec-8753-b18a4fac9331'
AND FCBZH_DYNM = '262ff333-8e40-47ec-8753-b18a4fac9331'
AND FCBBRW_SLNM = 'f4f10134-ca32-4329-88fa-1e2e5ab5c47e'
AND FCBBRW_BBNM = '262ff333-8e40-47ec-8753-b18a4fac9331'
AND FC_ZZ_NM IN ('a0f8f16c-fa4e-4bf5-bb74-d9b5f9ac8640',
'1c42551c-3749-48ec-b2a5-7cdac85f3915')
AND FCBZH_ZZNM IN ('a0f8f16c-fa4e-4bf5-bb74-d9b5f9ac8640',
'1c42551c-3749-48ec-b2a5-7cdac85f3915')
GROUP BY YSYSXM_XMXZ,
FC_QYXM_NM,
FC_MB_NM,
FC_ZB_NM,
FC_LX_NM,
FC_QJ_NM,
FCBZL_DECN) QU
ON (DA.FC_QYXM_NM = QU.FC_QYXM_NM AND DA.FC_MB_NM = QU.FC_MB_NM AND DA.FC_ZB_NM = QU.FC_ZB_NM AND DA.FC_LX_NM = QU.FC_LX_NM AND DA.FC_QJ_NM = QU.FC_QJ_NM AND DA.FC_ZZ_NM = 'f9b6a300-534c-49f0-9aca-63b5a4caf8d8')
WHEN MATCHED THEN
UPDATE
SET DA.FC_QJS = ROUND(QU.FC_QJS, QU.FCBZL_DECN),
DA.FC_LJS = ROUND(QU.FC_LJS, QU.FCBZL_DECN),
DA.FC_NDS = ROUND(QU.FC_NDS, QU.FCBZL_DECN),
DA.FC_LJS_C = ROUND(QU.FC_LJS_C, QU.FCBZL_DECN),
DA.FC_NDS_C = ROUND(QU.FC_NDS_C, QU.FCBZL_DECN),
DA.FC_QJS_C = ROUND(QU.FC_QJS_C, QU.FCBZL_DECN),
DA.FC_NDS_1 = ROUND(QU.FC_NDS_1, QU.FCBZL_DECN),
DA.FC_LJS_1 = ROUND(QU.FC_LJS_1, QU.FCBZL_DECN),
DA.FC_QJS_1 = ROUND(QU.FC_QJS_1, QU.FCBZL_DECN),
FC_SJLY = '',
FC_HZLBNM = 'fc302219-8a8b-484a-a9ff-2292a19606e3',
LASTMODIFIER = 'LYX',
LASTMODIFIEDTIME = (select to_date('2017-07-21 14:06:01 ',
'YYYY-MM-DD HH24:MI:SS')
from dual)
WHEN NOT MATCHED THEN
INSERT
(FC_ZZ_NM,
FC_MXNM,
FC_DANM,
FC_BBDY,
FC_LCST,
FC_QYXM_NM,
FC_MB_NM,
FC_ZB_NM,
FC_LX_NM,
FC_QJ_NM,
FC_QJS,
FC_NDS,
FC_LJS,
FC_QJS_C,
FC_NDS_C,
FC_LJS_C,
FC_QJS_1,
FC_NDS_1,
FC_LJS_1,
FC_SJLY,
FC_HZLBNM,
CREATOR,
LASTMODIFIER,
CREATEDTIME,
LASTMODIFIEDTIME)
VALUES
('f9b6a300-534c-49f0-9aca-63b5a4caf8d8',
'XS04',
substr(sys_guid(), 0, 4) || sys_guid(),
'262ff333-8e40-47ec-8753-b18a4fac9331',
'',
QU.FC_QYXM_NM,
QU.FC_MB_NM,
QU.FC_ZB_NM,
QU.FC_LX_NM,
QU.FC_QJ_NM,
ROUND(QU.FC_QJS, QU.FCBZL_DECN),
ROUND(QU.FC_NDS, QU.FCBZL_DECN),
ROUND(QU.FC_LJS, QU.FCBZL_DECN),
ROUND(QU.FC_QJS_C, QU.FCBZL_DECN),
ROUND(QU.FC_NDS_C, QU.FCBZL_DECN),
ROUND(QU.FC_LJS_C, QU.FCBZL_DECN),
ROUND(QU.FC_QJS_1, QU.FCBZL_DECN),
ROUND(QU.FC_NDS_1, QU.FCBZL_DECN),
ROUND(QU.FC_LJS_1, QU.FCBZL_DECN),
'',
'fc302219-8a8b-484a-a9ff-2292a19606e3',
'LYX',
'LYX',
(select to_date('2017-07-21 14:06:01 ', 'YYYY-MM-DD HH24:MI:SS')
from dual),
(select to_date('2017-07-21 14:06:01 ', 'YYYY-MM-DD HH24:MI:SS')
from dual))

其实merge into语句的语法概括起来如下:

MERGE INTO table_name t1
USING (table|view|sub_query) t2
ON (join condition)
WHEN MATCHED THEN
    UPDATE table_name
    SET col1 = col_val1,
col2 = col_val2
WHEN NOT MATCHED THEN
    INSERT (column_list) VALUES (column_values);

纪念我人生中第一个merge into语句的更多相关文章

  1. 手摸手教你编写你人生中第一个HTML页面

    本文是<HTML5与CSS3基础语法自学教程>的第二篇,首发于[前端课湛]微信公众号. 导读:本小节主要讲解 HTML 的基础语法内容,将通过编写第一个 HTML 页面来学习 HTML 的 ...

  2. 18岁,赚到了人生中的第一个10W!

    大家好,我是九歌 今年我18岁,赚到了我人生中的第一个10W 截至2019年10月14日,我已经做了43天的公众号啦,粉丝也悄然增长到了1W8,感谢各位读者朋友给我的支持和鼓励. 相信大部分读者都是从 ...

  3. 如何查找MySQL中查询慢的SQL语句

    如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow ...

  4. 如何查找MySQL中查询慢的SQL语句(转载)

    转载自https://www.cnblogs.com/qmfsun/p/4844472.html 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那 ...

  5. PS网页设计教程XXX——在PS中创建一个漫画书主题网页布局

    作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...

  6. 在Git中添加一个项目

    首先保证Git服务器正确配置,管理员机器可正常连接并使用Git. 第一步:在服务器上新建一个项目仓库 切换到git用户: a@ubuntu:/home/git$ su - git $ cd /home ...

  7. C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】

    C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...

  8. 人生中的那口井 z

    有两个和尚住在隔壁,每天都会在同一时间下山去溪边挑水,不知不觉己经过了五年. 突然有一天,左边这座山的和尚没有下山挑水,过了一个星期,还是没有下山挑水. 直到过了一个月,右边那座山的和尚很担心就去探望 ...

  9. 如何在 GitHub 的项目中创建一个分支呢?

    如何在 GitHub 的项目中创建一个分支呢? 其实很简单啦,直接点击 Branch,然后在弹出的文本框中添加自己的 Branch Name 然后点击蓝色的Create branch就可以了,这样一来 ...

随机推荐

  1. 51nod 1283 最小周长【注意开根号】

    1283 最小周长 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 一个矩形的面积为S,已知该矩形的边长都是整数,求所有 ...

  2. ansible管理window

    设置window以支持远程执行命令======================================= 升级powershell到3.0+-------------------------- ...

  3. [CTSC2017]密钥

    传送门:http://uoj.ac/problem/297 “无论哪场比赛,都要相信题目是水的” 这不仅是HNOI2018D2T3的教训,也是这题的教训,思维定势真的很可怕. 普及组水题,真是愧对CT ...

  4. 【数论】【欧拉函数】【筛法求素数】【乘法逆元】【快速幂取模】bzoj2186 [Sdoi2008]沙拉公主的困惑

    http://www.cnblogs.com/BLADEVIL/p/3490321.html http://www.cnblogs.com/zyfzyf/p/3997986.html 翻了翻题解,这两 ...

  5. 【DFS序】【莫队算法】【权值分块】bzoj1803 Spoj1487 Query on a tree III

    基本等同这个,只是询问的东西不大一样而已. http://www.cnblogs.com/autsky-jadek/p/4159897.html #include<cstdio> #inc ...

  6. python基础-协程函数、递归、模块、包等内容

    1. 协程函数 1.1 yield基本用法 yield作用 1.把函数的执行结果封装好,即封装__iter__和__next__,即得到一个迭代器 2.与return功能类似,都可以返回值,但不同的是 ...

  7. 1.2(学习笔记) JSP动作元素

    动作元素 jsp:useBean:根据指定类实例化一个对象,类似Preson per = new Preson(); <jsp:useBean id="对象名" class ...

  8. FCL研究-目录

    准备深入的学习下 FCL,太过于庞大,有些无从下口.用最笨的方法,先从常用的几个命名空间入手. 微软发布了.NET 的源码,学习起来更加方便了. 集合 导航: FCL研究-集合- System.Col ...

  9. [测试技术分享]DNS域传送漏洞测试

    DNS域传送漏洞测试 1.简介: DNS(Domain Name System)也叫域名管理系统,它它建立在一个分布式数据库基础之上,在这个数据库里,保存了IP地址和域名的相互映射关系.正因为DNS的 ...

  10. Delphi 窗体失踪在最上面的代码

    unit ufrmSysPubMessage; interface uses  Windows, Forms, Messages, Classes, ExtCtrls, Controls, StdCt ...