數(shù)據(jù)脫敏到文件和文件導(dǎo)入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)_第1頁(yè)
數(shù)據(jù)脫敏到文件和文件導(dǎo)入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)_第2頁(yè)
數(shù)據(jù)脫敏到文件和文件導(dǎo)入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)_第3頁(yè)
數(shù)據(jù)脫敏到文件和文件導(dǎo)入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)_第4頁(yè)
數(shù)據(jù)脫敏到文件和文件導(dǎo)入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、北京明朝萬(wàn)達(dá)科技有限公司 技術(shù)交底書(內(nèi)部資料)我司案號(hào) 委托日期 專利類型 技 術(shù) 交 底 書(發(fā)明或?qū)嵱眯滦蛯@暾?qǐng)專用)技術(shù)交底書名稱:數(shù)據(jù)脫敏到文件和文件導(dǎo)入數(shù)據(jù)庫(kù)的實(shí)現(xiàn) 發(fā)明人名單:技術(shù)交底書撰寫人:吳陽(yáng)撰寫人聯(lián)系方式:E-mail:wuyang固定電話:手機(jī)明人所屬項(xiàng)目組: 研發(fā)中心-數(shù)據(jù)管控產(chǎn)品線 本申請(qǐng)涉及的方案是否已在產(chǎn)品上應(yīng)用(可選):否 是 (產(chǎn)品名稱) 本申請(qǐng)涉及的方案是否即將在產(chǎn)品上應(yīng)用:否 是 (產(chǎn)品名稱) (預(yù)計(jì)的應(yīng)用時(shí)間) 交底書撰寫注意事項(xiàng):1、專利法予以保護(hù)的是技術(shù)方案不是功能,因此需要給出實(shí)現(xiàn)某種功能的具體技術(shù)方案,不能僅僅闡述功

2、能;2、為了獲得一個(gè)較大的保護(hù)范圍,在能夠?qū)崿F(xiàn)最基本的發(fā)明目的的前提條件下,發(fā)明人應(yīng)該在當(dāng)前實(shí)施的最優(yōu)技術(shù)方案基礎(chǔ)上發(fā)散思維,給出盡可能多的替代方案;3、同一個(gè)技術(shù)術(shù)語(yǔ)在整個(gè)交底書里只用一個(gè)詞來(lái)表達(dá),不要用多個(gè)詞來(lái)表達(dá)。4、代理人和知識(shí)產(chǎn)權(quán)專員不是技術(shù)專家,當(dāng)他們咨詢時(shí),發(fā)明人需要耐心講解;如果代理人或知識(shí)產(chǎn)權(quán)專員要求補(bǔ)充必要的資料,發(fā)明人應(yīng)當(dāng)及時(shí)補(bǔ)充。一、縮略語(yǔ)和關(guān)鍵術(shù)語(yǔ)定義(下文出現(xiàn)的英文縮寫術(shù)語(yǔ)在此提供對(duì)應(yīng)的英文全稱和中文譯文,或中文專業(yè)術(shù)語(yǔ)的詳細(xì)解釋)敏感數(shù)據(jù),指不為大眾知悉,具有實(shí)際和潛在利用價(jià)值,丟失、不當(dāng)使用或未經(jīng)授權(quán)訪問(wèn)對(duì)社會(huì)、企業(yè)或個(gè)人造成危害的信息,如個(gè)人隱私信息、業(yè)務(wù)經(jīng)營(yíng)

3、信息、財(cái)務(wù)信息、人事信息、IT運(yùn)維信息等。數(shù)據(jù)脫敏,指對(duì)某些敏感信息通過(guò)脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)敏感數(shù)據(jù)的可靠保護(hù)。脫敏數(shù)據(jù),指敏感數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)脫敏處理后,不再包含某些敏感信息的數(shù)據(jù)。數(shù)據(jù)遷移,指將數(shù)據(jù)從一個(gè)載體遷移到另一個(gè)載體,比如:從數(shù)據(jù)庫(kù)A遷移到數(shù)據(jù)庫(kù)B,從文件A遷移到數(shù)據(jù)庫(kù)A,從數(shù)據(jù)庫(kù)A遷移到文件A等。XML,即可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language)。標(biāo)記是指計(jì)算機(jī)所能理解的信息符號(hào),通過(guò)此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章等。如何定義這些標(biāo)記,既可以選擇國(guó)際通用的標(biāo)記語(yǔ)言,比如HTML,也可以使用像XML這樣由相關(guān)人士自由決定的標(biāo)記語(yǔ)言,

4、這就是語(yǔ)言的可擴(kuò)展性。XML是從SGML中簡(jiǎn)化修改出來(lái)的。文件的導(dǎo)出,即將源數(shù)據(jù)庫(kù)中脫敏后的數(shù)據(jù)導(dǎo)入到指定格式的文件中。文件的導(dǎo)入,即將excel文件經(jīng)過(guò)脫敏操作過(guò)后導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)中。二、背景技術(shù)以及與本申請(qǐng)相關(guān)的現(xiàn)有技術(shù)1、背景技術(shù)(即幫助理解本專利技術(shù)內(nèi)容的公知常識(shí),您基于什么樣的背景發(fā)明的該專利):隨著信息技術(shù)的發(fā)展與大數(shù)據(jù)時(shí)代的到來(lái),數(shù)據(jù)流通成為釋放數(shù)據(jù)紅利與價(jià)值的主要手段和途徑,敏感數(shù)據(jù)在流通中缺乏有效管控,處于高風(fēng)險(xiǎn)狀態(tài)。近年來(lái),敏感數(shù)據(jù)泄漏事件屢見不鮮。敏感數(shù)據(jù)泄漏帶來(lái)的不僅僅是經(jīng)濟(jì)損失,同時(shí)損害了金融機(jī)構(gòu)和政府部門等權(quán)威機(jī)構(gòu)的公信力,嚴(yán)重破壞了社會(huì)信用體系,影響了相關(guān)產(chǎn)業(yè)與全

5、社會(huì)健康和諧發(fā)展。在這樣的時(shí)代背景下,防止敏感數(shù)據(jù)的泄漏成為了十分重要的問(wèn)題,因此我們開發(fā)了數(shù)據(jù)脫敏網(wǎng)關(guān)。數(shù)據(jù)脫敏網(wǎng)關(guān)就是針對(duì)敏感數(shù)據(jù)進(jìn)行數(shù)據(jù)脫敏,保證數(shù)據(jù)在做數(shù)據(jù)遷移的和使用時(shí)的安全性和保密性。數(shù)據(jù)脫敏網(wǎng)關(guān)主要實(shí)現(xiàn)了敏感數(shù)據(jù)在數(shù)據(jù)庫(kù)之間的脫敏和遷移,針對(duì)客戶的需求,又加入了數(shù)據(jù)庫(kù)到文件(支持的文件格式有csv,excel,json,xml,txt)的脫敏,和文件(暫時(shí)只支持07版以前的excel,或者excel壓縮打包后的zip包)到數(shù)據(jù)庫(kù)的脫敏。2、與本專利最接近的現(xiàn)有技術(shù)(現(xiàn)有技術(shù)就是已經(jīng)有的技術(shù),如果該現(xiàn)有技術(shù)的缺點(diǎn)正是本發(fā)明能夠消除的,則為相關(guān)現(xiàn)有技術(shù),否則為非相關(guān)現(xiàn)有技術(shù);相關(guān)現(xiàn)有

6、技術(shù)中,與本專利共同的技術(shù)特征最多的,可視為最接近現(xiàn)有技術(shù))最接近現(xiàn)有技術(shù)是數(shù)據(jù)脫敏網(wǎng)關(guān)中的數(shù)據(jù)遷移管理模塊,實(shí)現(xiàn)了數(shù)據(jù)庫(kù)之間的脫敏遷移。2.1現(xiàn)有技術(shù)的實(shí)現(xiàn)方案(給出現(xiàn)有技術(shù)的系統(tǒng)圖、流程圖,結(jié)合附圖說(shuō)明現(xiàn)有技術(shù)的實(shí)現(xiàn)過(guò)程)數(shù)據(jù)遷移管理模塊作為數(shù)據(jù)脫敏網(wǎng)關(guān)的核心功能,其下又分為三個(gè)子模塊: 策略管理,任務(wù)管理,任務(wù)日志管理,集成在數(shù)據(jù)脫敏網(wǎng)關(guān)中。如下圖:策略管理:實(shí)現(xiàn)了相關(guān)脫敏策略的增刪改查操作。任務(wù)管理:實(shí)現(xiàn)了相關(guān)脫敏任務(wù)的增刪改查操作,改子模塊是脫敏遷移管理的核心功能,整個(gè)的數(shù)據(jù)脫敏遷移都是在這里實(shí)現(xiàn),目前實(shí)現(xiàn)了數(shù)據(jù)庫(kù)到數(shù)據(jù)的脫敏遷移,數(shù)據(jù)到csv文件的脫敏遷移。任務(wù)日志管理:簡(jiǎn)單的任務(wù)

7、日志查看功能。數(shù)據(jù)庫(kù)脫敏遷移流程圖2.2現(xiàn)有技術(shù)的缺點(diǎn)(一定是采用本專利申請(qǐng)技術(shù)方案后能夠消除的缺點(diǎn),缺點(diǎn)可以是多個(gè))現(xiàn)有數(shù)據(jù)遷移管理模塊中,只是針對(duì)了數(shù)據(jù)庫(kù)之間的脫敏遷移,在文件(excel)方面功能還不夠完善,只存在簡(jiǎn)單的csv文件的導(dǎo)出功能,在遇到客戶需要其他文件格式的時(shí)候,比如excel,xml,json等文件格式的時(shí)候沒(méi)有良好的支持。 三、本申請(qǐng)所解決的技術(shù)問(wèn)題(針對(duì)上述2.2點(diǎn)提出的缺點(diǎn),引出發(fā)明動(dòng)機(jī),闡述本專利要解決的技術(shù)問(wèn)題)在數(shù)據(jù)脫敏中,脫敏后的數(shù)據(jù)存放在一個(gè)List<Map<String, Object>>集合中,其中每一個(gè)Map都對(duì)應(yīng)數(shù)據(jù)庫(kù)里面的一

8、個(gè)數(shù)據(jù),string為其列名,object為其值。難點(diǎn)在于怎樣將數(shù)據(jù)按照每個(gè)文件對(duì)應(yīng)的格式轉(zhuǎn)換寫入到文件當(dāng)中,而且在excel文件存在不同版本的區(qū)別,07版以前的excel每一個(gè)sheet只支持65535行的數(shù)據(jù)量,而07版本以后支持100萬(wàn)+行的數(shù)據(jù)量,map中的健對(duì)應(yīng)excel的表頭列名。xml的數(shù)據(jù)也有固定的格式要求,下文會(huì)貼出例子;而json數(shù)據(jù)在Java里面有現(xiàn)有的方法實(shí)現(xiàn),就不做詳細(xì)的闡述了。XML數(shù)據(jù)格式:<nodes><node><key label="key1">value1</key><key lab

9、el="key2">value2</key>.</node><node><key label="key1">value1</key><key label="key2">value2</key>.</node></nodes>備注:每一個(gè)node對(duì)應(yīng)數(shù)據(jù)中的每一行數(shù)據(jù),label對(duì)應(yīng)數(shù)據(jù)庫(kù)中的字段名,value對(duì)應(yīng)其值。四、本申請(qǐng)技術(shù)方案的詳細(xì)闡述(發(fā)明內(nèi)容,重點(diǎn)介紹)1、本申請(qǐng)的總體技術(shù)實(shí)現(xiàn)(主要是代碼方面的實(shí)現(xiàn))。(總的

10、構(gòu)思)流程圖:備注:因?yàn)檫@里是針對(duì)已經(jīng)脫敏的List<Map<String, Object>>數(shù)據(jù)進(jìn)行文件格式的輸出,這里就不做脫敏的實(shí)現(xiàn),只做文件輸出的實(shí)現(xiàn)。后文中會(huì)用到一個(gè)公共的Document對(duì)象轉(zhuǎn)String的方法:public static String doctoString(Document document) String str = "" try / 使用輸出流來(lái)進(jìn)行轉(zhuǎn)化 ByteArrayOutputStream out = new ByteArrayOutputStream(); / 使用UTF-8編碼 OutputFormat

11、 format = new OutputFormat(" ", true, "UTF-8"); XMLWriter writer = new XMLWriter(out, format); writer.write(document); str = out.toString("UTF-8"); catch (Exception ex) ex.printStackTrace(); return str; 1 List<Map<String, Object>>轉(zhuǎn)xml文件格式的實(shí)現(xiàn)(前文已經(jīng)寫出了xml文件格式的基

12、本,下文就不在做詳細(xì)的贅述了):引用的包:org.dom4j。根據(jù)xml文件的基本格式看出,在做具體實(shí)現(xiàn)的時(shí)候,我是把list里面的數(shù)據(jù)放在nodes標(biāo)簽里面的,其子標(biāo)簽node則對(duì)應(yīng)數(shù)據(jù)庫(kù)里面的每一行數(shù)據(jù),數(shù)據(jù)庫(kù)對(duì)應(yīng)的字段名則是key標(biāo)簽里面的label屬性。這里的重點(diǎn)就是找出最簡(jiǎn)單的方法將數(shù)據(jù)庫(kù)里面的字段名寫入到label里面,在這里我們只需要遍歷list0中的數(shù)據(jù)就能得出數(shù)據(jù)庫(kù)中的字段名了,實(shí)現(xiàn)代碼如下: public static String listtoXml(List list) throws Exception /初始化一個(gè)document對(duì)象,用來(lái)添加X(jué)ML內(nèi)容Documen

13、t document = DocumentHelper.createDocument();/初始化一個(gè)Element對(duì)象,其表示XML文檔中的元素,元素可包含屬性,其他元素或文本,如果元素含有文本,則在文本節(jié)點(diǎn)中表示該文本,文本永遠(yuǎn)存儲(chǔ)在文本節(jié)點(diǎn)中。 此時(shí)創(chuàng)建了一個(gè)父節(jié)點(diǎn)nodes,用于記錄list里面的所有數(shù)據(jù)。Element nodesElement = document.addElement("nodes"); int i = 0;/遍歷list for (Object o : list) /初始化Element對(duì)象,創(chuàng)建nodes節(jié)點(diǎn)的子節(jié)點(diǎn)node,用于記錄每一行

14、數(shù)據(jù)。Element nodeElement = nodesElement.addElement("node"); if (o instanceof Map) /遍歷mapfor (Object obj : (Map) o).keySet() /初始化Element對(duì)象,創(chuàng)建node節(jié)點(diǎn)的子節(jié)點(diǎn)key,用于記錄每一格的具體數(shù)據(jù)。Element keyElement = nodeElement.addElement("key"); /key節(jié)點(diǎn)的label屬性,即map的健,對(duì)應(yīng)數(shù)據(jù)庫(kù)的字段名。keyElement.addAttribute("l

15、abel", String.valueOf(obj); /key節(jié)點(diǎn)的具體內(nèi)容,即map的值,對(duì)應(yīng)數(shù)據(jù)庫(kù)的值。keyElement.setText(String.valueOf(Map) o).get(obj); else Element keyElement = nodeElement.addElement("key"); keyElement.addAttribute("label", String.valueOf(i); keyElement.setText(String.valueOf(o); i+; /將Document對(duì)象轉(zhuǎn)為字符串

16、返回,在轉(zhuǎn)字符串的時(shí)候設(shè)定了具體的編碼,xml為UTF8的編碼。 return doctoString(document); 到此就將一個(gè)List<Map<String, Object>>轉(zhuǎn)換為了xml文件的格式了,這個(gè)list就是數(shù)據(jù)脫敏網(wǎng)關(guān)中的脫敏數(shù)據(jù),余下的操作就是將上面返回的字符串輸出到文件中,文件的輸出就是一個(gè)簡(jiǎn)單的I/O操作就不再做詳細(xì)的贅述了,值得注意的是在創(chuàng)建文件的時(shí)候是以xml為后綴的。2. List<Map<String, Object>>轉(zhuǎn)excel文件格式的實(shí)現(xiàn)(區(qū)別excel 07版以前和以后兩個(gè)版本):07版本以前的每

17、一個(gè)工作簿(sheet)數(shù)據(jù)量限制為256列*65536行,07版本以后的限制為16384列*1048576行,在這里可以看出07版本的excel文件存儲(chǔ)的數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于較早版本的,所以建議盡量使用07版本以后的.不過(guò)考慮到很多PC上面可能沒(méi)有較新的excel我會(huì)給出兩個(gè)版本的具體實(shí)現(xiàn)。而且兩個(gè)版本的excel在文件后綴名上也存在不同,07版本以前為.xls,07版本以后為.xlsx,在創(chuàng)建文件的時(shí)候需要值得注意。07版本以前引用的包:org.apache.poi.hssf.usermodel。/* *創(chuàng)建excel表頭 * param sheet * param keysStr */priv

18、ate static void buildTitleOld(HSSFSheet sheet, String keysStr) if (sheet.getLastRowNum() = 0) HSSFCell cell = null;HSSFRow row = sheet.createRow(sheet.getLastRowNum();for (int j = 0; j < keysStr.length; j+) cell = row.createCell(j);cell.setCellValue(keysStrj);/* excel 版本2007以下 sheet上限65535* param

19、 List<Map<String, Object>>* return*/public static HSSFWorkbook listtoExcleOld(List<Map<String, Object>> list)HSSFWorkbook workbook = new HSSFWorkbook();/獲取數(shù)據(jù)庫(kù)中的字段名。String keysStr = list.get(0).keySet().toArray(new String );HSSFSheet sheet = workbook.getSheetAt(workbook.getNum

20、berOfSheets() - 1);HSSFRow row = null;HSSFCell cell = null;int rowNum = sheet.getLastRowNum();buildTitleOld(sheet, keysStr);for (int i = 0; i < list.size(); i+) if (rowNum > 65535) sheet = workbook.createSheet();buildTitleOld(sheet, keysStr);rowNum = 0;row = sheet.createRow(+rowNum);for (int j

21、 = 0; j < keysStr.length; j+) cell = row.createCell(j);String key = keysStrj;Object obj = list.get(i).get(key);String str = ""if (obj != null) str = obj.toString();cell.setCellValue(str);row = null;cell = null;return workbook;07版本以前引用的包:org.apache.poi.xssf.usermodel。/* *創(chuàng)建excel表頭 * para

22、m sheet * param keysStr */private static void buildTitleNew(XSSFSheet sheet, String keysStr) if (sheet.getLastRowNum() = 0) XSSFCell cell = null;XSSFRow row = sheet.createRow(sheet.getLastRowNum();for (int j = 0; j < keysStr.length; j+) cell = row.createCell(j);cell.setCellValue(keysStrj);/* list

23、 to excel 版本2007以上 sheet行數(shù)上線100萬(wàn)+* param List<Map<String, Object>>* return*/public static XSSFWorkbook listtoExcleNew(List<Map<String, Object>> list)XSSFWorkbook workbook = new XSSFWorkbook();String keysStr = list.get(0).keySet().toArray(new String );XSSFSheet sheet = workboo

24、k.getSheetAt(workbook.getNumberOfSheets() - 1);XSSFRow row = null;XSSFCell cell = null;int rowNum = sheet.getLastRowNum();buildTitleNew(sheet, keysStr);for (int i = 0; i < list.size(); i+) if (rowNum > 1048575) sheet = workbook.createSheet();buildTitleNew(sheet, keysStr);rowNum = 0;row = sheet

25、.createRow(+rowNum);for (int j = 0; j < keysStr.length; j+) cell = row.createCell(j);String key = keysStrj;Object obj = list.get(i).get(key);String str = ""if (obj != null) str = obj.toString();cell.setCellValue(str);row = null;cell = null;return workbook;以上就是兩種excel文件格式的具體實(shí)現(xiàn)。07版以后的擴(kuò)展名都

26、是.xlsx ,是用新的基于XML的壓縮文件格式取代了其目前專有的默認(rèn)文件格式,在傳統(tǒng)的文件名擴(kuò)展名后面添加了字母x(即.docx取代.doc、.xlsx取代.xls,等等),使其占用空間更小,可以向下兼容xls。在做I/O輸出的時(shí)候需要區(qū)別兩個(gè)版本的excel文件,并修改對(duì)應(yīng)的后綴名。3. 文件(excel文件.xls或者其對(duì)應(yīng)的zip包)導(dǎo)入到數(shù)據(jù)庫(kù):在文件導(dǎo)入數(shù)據(jù)庫(kù)的時(shí)候這里考慮了兩張情況,數(shù)據(jù)表建表與否。情況一,數(shù)據(jù)庫(kù)表已經(jīng)建好,且表名對(duì)應(yīng)文件名,字段名對(duì)應(yīng)文件表頭,就可以實(shí)現(xiàn)文件的直接導(dǎo)入,流程圖如下:這里就不再詳細(xì)的貼出相關(guān)代碼, 說(shuō)明幾個(gè)值得注意的地方:1 在寫入數(shù)據(jù)之前,需要讀

27、取數(shù)據(jù)庫(kù)中對(duì)應(yīng)表的字段名,作為全局變量使用,以便匹配list里面對(duì)應(yīng)的數(shù)據(jù);2 如果是ZIP包,里面可能存在多個(gè)文件的情況,在處理多個(gè)文件的時(shí)候,需要對(duì)文件進(jìn)行遍歷并且和數(shù)據(jù)庫(kù)里面的數(shù)據(jù)表一一對(duì)應(yīng),對(duì)沒(méi)有建表的文件拋出異常,其余文件正常導(dǎo)入。情況二,數(shù)據(jù)庫(kù)未建表,但是上傳的文件為ZIP包,且里面包含了一個(gè)SQL文件夾,流程圖如下:在執(zhí)行SQL文件的時(shí)候,sql語(yǔ)句必須符合語(yǔ)法規(guī)則,要不然會(huì)導(dǎo)致建表失敗,可以批量的進(jìn)行建表操作和文件的導(dǎo)入,目前支持informix數(shù)據(jù)庫(kù)和oracle數(shù)據(jù)表。在處理所有數(shù)據(jù)的時(shí)候都是采用批處理,在一定程度上提高了數(shù)據(jù)的處理速度。以下是一些比較重要的方法實(shí)現(xiàn):/*獲

28、取數(shù)據(jù)表的字段信息*/public static Map<String, Integer> getTableInfo(Connection conn, String tableName)Map<String, Integer> colInfo = new HashMap<String, Integer>();String simpleselect = "select * from "+tableName;ResultSet rs;try rs = conn.prepareStatement(simpleselect).executeQue

29、ry();ResultSetMetaData dbMeta = rs.getMetaData();for (int i = 1; i <= dbMeta.getColumnCount(); i+) if ("ROWNUM".equals(dbMeta.getColumnName(i)continue;/ 保存列名和codeString colName = dbMeta.getColumnName(i).toLowerCase();int javacode = dbMeta.getColumnType(i);colInfo.put(colName, javacode); catch (SQLException e) e.printStac

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論