




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、14.1 數(shù)據(jù)庫表關系數(shù)據(jù)庫表關系 1. 關系基數(shù) 2. CMP和BMP的不同點 3. 用BMP實現(xiàn)一對一關系 4.用BMP實現(xiàn)一對多關系 5. 用BMP實現(xiàn)多對多關系 6.用CMP實現(xiàn)例子 7. 用CMP實現(xiàn)一對一關系 8.用CMP實現(xiàn)一對多關系 9. 用CMP實現(xiàn)多對多關系1. 關系基數(shù) 關系基數(shù)有三種形式: 1:1關系 1:N關系 M:N關系CMP(Container-Managed Persistence)和CMR(Container-Managed Relationships) 2. CMP和BMP的不同點 BMP需要自己在Bean的編碼中明確實現(xiàn)關系。 CMP是通過在部署描述文件中
2、聲明Bean之間的關系,容器根據(jù)“聲明”,自動在子類中生成處理關系的代碼。3. 用BMP實現(xiàn)一對一關系 OrderPKOrderNameShipment12345Software Order10101ShipmentPKCityZipCode10101Austin78727Order:Shipment:3. 用BMP實現(xiàn)一對一關系 public class OrderBean implements EntityBean private String orderPK;private String orderName;private Shipment shipment;public Shipmen
3、t getShipment() return shipment;public void setShipment(Shipment s) this.shipment=s;3. 用BMP實現(xiàn)一對一關系 public void ejbLoad() /1:SQL SELECT Order/取出Order表中的Shipment/2.使用JNDI API查找ShipmentHome對象/3.調(diào)用ShipmentHome.findByPrimaryKey();/傳入的參數(shù)是Order表中的Shipment,從而得到Shipment的EJB對象3. 用BMP實現(xiàn)一對一關系 public void ejbSto
4、re() /1.調(diào)用Shipment.getPrimaryKey(),/取出當前Shipment對象的主鍵類/2:SQL UPDATE Order4. 用BMP實現(xiàn)一對多關系 CompanyPKName12345The Middleware CompanyEmployeePKNameSexCompany20202EdM1234520203FloydM12345Company:Employee:4. 用BMP實現(xiàn)一對多關系 public class CompanyBean implements EntityBean private String companyPK;private String
5、companyName;private Vector employees;public Collection getEmployees() return employees;public void setEmployees(Collection e) this.employees=e;4. 用BMP實現(xiàn)一對多關系 public void ejbLoad() /1:SQL SELECT Company/2.使用JNDI API查找EmployeeHome對象/3.調(diào)用EmployeeHome.findByCompany(companyPK);public void ejbStore() /1:S
6、QL UPDATE Company5. 用BMP實現(xiàn)多對多關系 StudentPKNameCourse10101Joe Student2020210101Joe Student2020310102Smith Student2020210102Smith Student20203Student:5. 用BMP實現(xiàn)多對多關系 CoursePKNameStudent20202EJB for Architects1010120202EJB for Architects1010220203JSP and Servlets1010120203JSP and Servlets10102Course:5. 用
7、BMP實現(xiàn)多對多關系 public class StudentBean implements EntityBean private String studentPK;private String name;private Vector courses;public Collection getCourses() return courses;public void setCourses(Collection e) this.courses=e;.public void ejbLoad() /1:SQL SELECT Student/2.使用JNDI API查找CourseHome對象/3.調(diào)用
8、CourseHome.findByStudent(studentPK);public void ejbStore() /1:SQL UPDATE Student5. 用BMP實現(xiàn)多對多關系 public class CourseBean implements EntityBean private String coursePK;private String name;private Vector students;public Collection getStudents() return students;public void setStudents(Collection e) this.
9、students=e;.public void ejbLoad() /1:SQL SELECT Course/2.使用JNDI API查找StudentHome對象/3.調(diào)用StudentHome.findByCourse(coursePK);public void ejbStore() /1:SQL UPDATE Course6. 用CMP實現(xiàn)例子 基于在線內(nèi)容管理系統(tǒng)的假想認證子系統(tǒng)的示例,它具有以下這些功能: 將用戶登錄到系統(tǒng) 認證用戶處于某種角色 允許將用戶組織成組,從而允許進行組操作 存儲諸如地址和聯(lián)系信息這樣的用戶信息 管理角色、用戶和組 6. 用CMP實現(xiàn)例子 圖圖 1 1:Us
10、erUser、GroupGroup、Role Role 和和 UserInfo UserInfo 實體實體6. 用CMP實現(xiàn)例子系統(tǒng)中的實體的概述表明有四個截然不同的實體:User、Group、Role 和 UserInfo。這些實體有下面這三種關系: User 與 Role 相關聯(lián)(多對多) 一個 User 有一條 UserInfo(一對一) 一個 Group 有多個 User(一對多)6. 用CMP實現(xiàn)例子表名:User字段名類型說明email(主鍵)VARCHAR(64)Email地址passwordVARCHAR(64)密碼6. 用CMP實現(xiàn)例子表名:UserInfo字段名類型說明em
11、ail(主鍵)VARCHAREmail地址nameVARCHAR姓名deptVARCHAR組別workPhoneVARCHAR工作電話ageINTEGER年齡salaryINTEGER薪水6. 用CMP實現(xiàn)例子表名:Group字段名類型說明name(主鍵)VARCHAR名稱description VARCHAR行業(yè)說明6. 用CMP實現(xiàn)例子表名:Role字段名類型說明name(主鍵)VARCHAR權限名稱description VARCHAR權限描述7. 用CMP實現(xiàn)一對一關系一、設計實體一、設計實體Bean :UserInfoBean 1. 建立主體部分:建立主體部分: 在 CMP_Samp
12、le 項目中,右擊“src” -新建 -Lomboz EJB Creation Wizard : 包(K) :javamxj.ejb.cmp 名稱(M): UserInfo EJB Type: 選擇 Container Managed Entity EJB 點擊下一步。 Schema Name: UserInfoSchema Table Name: UserInfoTable 增加一個 email 欄: Field: email Field Type: java.lang.String Database Column: 電子郵件 SQL Type: varchar 并且使它成為主鍵并且使它成為
13、主鍵。7. 用CMP實現(xiàn)一對一關系 同樣,再增加一個同樣,再增加一個 name 欄:欄: Field: name Field Type: java.lang.String Database Column: 姓名姓名 SQL Type: varchar 同樣,再增加一個同樣,再增加一個 dept 欄:欄: Field: dept Field Type: java.lang.String Database Column: 組別組別 SQL Type: varchar 同樣,再增加一個同樣,再增加一個 workPhone欄:欄: Field: workPhone Field Type: java.l
14、ang.String Database Column: 工作電話工作電話 SQL Type: varchar 同樣,再增加一個同樣,再增加一個 age 欄:欄: Field: age Field Type: java.lang.Integer Database Column: 年齡年齡 SQL Type: Integer 同樣,再增加一個同樣,再增加一個 salary 欄:欄: Field: salary Field Type: java.lang.Integer Database Column: 薪水薪水 SQL Type: Integer 。7. 用CMP實現(xiàn)一對一關系 效果如下,最后點擊
15、完成。效果如下,最后點擊完成。7. 用CMP實現(xiàn)一對一關系7. 用CMP實現(xiàn)一對一關系 2. 2. 完成完成 ejbCreate ejbCreate 和和 ejbPostCreate ejbPostCreate 方法:方法: 7. 用CMP實現(xiàn)一對一關系 3. 3. 在類標記中加入以下標記。在類標記中加入以下標記。7. 用CMP實現(xiàn)一對一關系 4. ejb.select 4. ejb.select 方法方法 右擊右擊 UserInfoBean -J2EE UserInfoBean -J2EE -Add Select Method-Add Select Method 7. 用CMP實現(xiàn)一對一關系
16、 由于ejb.Home 方法需要通過 Home Home 接口才能間接使用,所以: 右擊 UserInfoBean -J2EE -Add HomeHome Method 7. 用CMP實現(xiàn)一對一關系如圖,點擊“完成”后生成的代碼,需要手動添加一條返回語句。 7. 用CMP實現(xiàn)一對一關系5.5. 將將 UserInfoBean UserInfoBean 加入到加入到 cmpEJB cmpEJB 模塊模塊中,然后中,然后 lomboz lomboz Generate EJB Generate EJB Classes Classes 如下圖,如下圖,會生成會生成6 6個文件,其中個文件,其中 Use
17、rInfoValue.java UserInfoValue.java 是是 “ejb.value-ejb.value-objectobject”標記生成的值標記生成的值對象。對象。 7. 用CMP實現(xiàn)一對一關系6 6. 添加一個抽象方法來調(diào)用值對象。 7. 用CMP實現(xiàn)一對一關系7 . 7 . 重 點 : 建 立重 點 : 建 立 UserInfoBean 與與 UserBean 的一對的一對一 的 雙 向 關一 的 雙 向 關系 :系 : 右 擊右 擊 UserInfoBean - J 2 E E - A d d CMR Relationship : 7. 用CMP實現(xiàn)一對一關系點擊點擊 完
18、成完成 后,生成如下代碼(紅框中的語句需要后,生成如下代碼(紅框中的語句需要手工添加):手工添加): 7. 用CMP實現(xiàn)一對一關系切換到切換到 UserBean.javaUserBean.java: 右擊右擊 UserBean UserBean -J2EE -Add -J2EE -Add CMR CMR Relationship : Relationship : 7. 用CMP實現(xiàn)一對一關系點擊點擊 完成完成 后,生成如下代碼(紅框中的語句需要后,生成如下代碼(紅框中的語句需要手工添加):手工添加): 7. 用CMP實現(xiàn)一對一關系點擊點擊“完成完成”后,生成如下代碼(紅框中的語句需要手后,生成
19、如下代碼(紅框中的語句需要手工添加):工添加):OkOk,再次,再次 Generate EJB ClassesGenerate EJB Classes。 7. 用CMP實現(xiàn)一對一關系 二、在二、在UserManagementBeanUserManagementBean中添加業(yè)務方法中添加業(yè)務方法1. 1. 增加一個增加一個 UserInfoLocalHome UserInfoLocalHome 的變量的變量 userHomeuserHome,并將,并將它放入它放入 ejbCreate ejbCreate 和和 ejbPassivate ejbPassivate 方法中。方法中。 7. 用CMP
20、實現(xiàn)一對一關系2. 2. 依次增加以下幾個業(yè)務方法。依次增加以下幾個業(yè)務方法。 7. 用CMP實現(xiàn)一對一關系7. 用CMP實現(xiàn)一對一關系7. 用CMP實現(xiàn)一對一關系7. 用CMP實現(xiàn)一對一關系7. 用CMP實現(xiàn)一對一關系 保存,保存,Generate EJB ClassesGenerate EJB Classes,啟動,啟動JBossJBoss服務器,服務器, Deploy ModuleDeploy Module。啟動啟動MySqlMySql,如果一切正常,則會在數(shù)據(jù)庫中自動建立兩個,如果一切正常,則會在數(shù)據(jù)庫中自動建立兩個表:表:usertable usertable 和和 userinfo
21、tableuserinfotable 。7. 用CMP實現(xiàn)一對一關系 三、創(chuàng)建客戶端三、創(chuàng)建客戶端1. 1. 右擊右擊 src src 文件夾文件夾 -新建新建 -Lomboz EJB Test Client -Lomboz EJB Test Client Wizard:Wizard: 7. 用CMP實現(xiàn)一對一關系2. 2. 修改生成的修改生成的 CMPClient2.javaCMPClient2.java,調(diào)用,調(diào)用UserManagementBeanUserManagementBean中的方法。先在中的方法。先在testBean()testBean()方法體外建立方法體外建立兩個兩個sta
22、ticstatic方法,簡化代碼調(diào)用。方法,簡化代碼調(diào)用。7. 用CMP實現(xiàn)一對一關系 / 創(chuàng)建用戶創(chuàng)建用戶 public static void createUsers(UserManagement userMgmt) throws RemoteException, CreateException System.out.println(向向UserInfo表中添加數(shù)據(jù)表中添加數(shù)據(jù)); userMgmt.addUser(, 密碼密碼1, 王一王一, Engineering, 111-1212, 22, 2000); userMgmt.addUser(, 密碼密碼2, 王二王二, Marketi
23、ng, 222-1213,40, 4000); userMgmt.addUser(zhangsanbbb.ccc, 密碼密碼3, 張三張三, IT, 1688888, 32, 2800); userMgmt.addUser(lisibbb.ccc, 密碼密碼4, 李四李四, Sales, 1288888, 28, 2700); userMgmt.addUser(zhubbb.eee, 密碼密碼5, 朱王五朱王五, Sales, 1588888, 38, 4500); userMgmt.addUser(, 分享分享Java快樂快樂, MXJ, IT, 1788888, 26, 2900); 7.
24、 用CMP實現(xiàn)一對一關系 / / 輸出輸出ArrayListArrayList private static void printList(ArrayList list) private static void printList(ArrayList list) Iterator i = list.iterator(); Iterator i = list.iterator(); while (i.hasNext() while (i.hasNext() Object details = (Object) i.next(); Object details = (Object) i.next()
25、; System.out.println(details.toString(); System.out.println(details.toString(); System.out.println(); System.out.println(); 7. 用CMP實現(xiàn)一對一關系 3. 3. 然后,將然后,將testBean()testBean()方法體內(nèi)的方法體內(nèi)的 myBean myBean 改成改成 userMgmtuserMgmt,再向表中添加數(shù)據(jù)及顯示數(shù)據(jù)。再向表中添加數(shù)據(jù)及顯示數(shù)據(jù)。public void testBean() public void testBean() try tr
26、y javamxj.ejb.cmp.UserManagement userMgmt = javamxj.ejb.cmp.UserManagement userMgmt = getHome().create(); getHome().create(); createUsers(userMgmt); createUsers(userMgmt); System.out.println( System.out.println(顯示所有用戶顯示所有用戶);); printList(userMgmt.getUsers(); printList(userMgmt.getUsers(); 7. 用CMP實現(xiàn)一
27、對一關系運行程序,則控制臺輸出如下:運行程序,則控制臺輸出如下: 7. 用CMP實現(xiàn)一對一關系4. 將將“createUsers(userMgmt);”語句注釋掉,調(diào)用密碼驗證及語句注釋掉,調(diào)用密碼驗證及改變用戶姓名的方法。改變用戶姓名的方法。 /createUsers(userMgmt); System.out.println(顯示所有用戶顯示所有用戶); printList(userMgmt.getUsers(); boolean login = false; login = userMgmt.verifyPassword(, 分享分享Java快樂快樂); System.out.print
28、ln(密碼驗證:密碼驗證: + login); System.out.println(改變用戶改變用戶的名字的名字); userMgmt.changeName(,Hello); 7. 用CMP實現(xiàn)一對一關系運行程序,則會發(fā)現(xiàn)運行程序,則會發(fā)現(xiàn) javamxj javamxj 的姓名已被更改為的姓名已被更改為 HelloHello: 7. 用CMP實現(xiàn)一對一關系5. 5. 繼續(xù)調(diào)用按年齡查詢用戶的方法:繼續(xù)調(diào)用按年齡查詢用戶的方法: System.out.println(System.out.println(采用采用 ejb.finder ejb.finder 輸出大于輸出大于3030的用戶的用
29、戶);); printList(userMgmt.getUserByAge1(30); printList(userMgmt.getUserByAge1(30); System.out.println( System.out.println(采用采用 ejb.select ejb.select 輸出年齡大輸出年齡大于于3030的用戶的用戶);); printList(userMgmt.getUserByAge2(30); printList(userMgmt.getUserByAge2(30);7. 用CMP實現(xiàn)一對一關系輸出:輸出: 7. 用CMP實現(xiàn)一對一關系6.繼續(xù)調(diào)用通過繼續(xù)調(diào)用通過V
30、alueObject輸出用戶的方法:輸出用戶的方法: System.out.println(通過通過 ValueObject 輸出用戶信息:輸出用戶信息:); UserInfoValue users = userMgmt.getUsersInfo(); for (int index = 0; index -新建新建 - -Lomboz EJB Creation Wizard :Lomboz EJB Creation Wizard : 包(包(K K) :javamxj.ejb.cmpjavamxj.ejb.cmp 名稱(名稱(M M):): GroupGroup EJB Type EJB Ty
31、pe: 選擇選擇 Container Managed Entity EJBContainer Managed Entity EJB 點擊下一步。點擊下一步。 Schema Name: GroupSchemaSchema Name: GroupSchema Table Name: GroupTable Table Name: GroupTable 8. 用CMP實現(xiàn)一對多關系 增加一個增加一個 name name 欄:欄: Field: name Field: name Field Type: java.lang.String Field Type: java.lang.String Datab
32、ase Column: Database Column: 名稱名稱 SQL Type: varchar SQL Type: varchar 并且使它成為主鍵。并且使它成為主鍵。 同樣,再增加一個同樣,再增加一個 description description 欄:欄: Field: description Field: description Field Type: java.lang.String Field Type: java.lang.String Database Column: Database Column: 行業(yè)說明行業(yè)說明 SQL Type: varchar SQL Type
33、: varchar 8. 用CMP實現(xiàn)一對多關系效果如下,最后效果如下,最后點擊完成。點擊完成。8. 用CMP實現(xiàn)一對多關系2. 2. 完成完成 ejbCreate ejbCreate 和和 ejbPostCreate ejbPostCreate 方法:方法: 8. 用CMP實現(xiàn)一對多關系3. 3. 在類標記中加入以下標記:在類標記中加入以下標記: 8. 用CMP實現(xiàn)一對多關系4. 4. 增加一個增加一個Select methodSelect method和和Home methodHome method/ /* * * * Select method Select method* * ejb.
34、select ejb.select* * query = SELECT user.email FROM GroupSchema AS g, query = SELECT user.email FROM GroupSchema AS g, IN (g.users) AS user WHERE = ?1 IN (g.users) AS user WHERE = ?1 * * * */ /p u b l i c a b s t r a c t j a v a . u t i l . C o l l e c t i o n p u b l i c a b s t r a c
35、 t j a v a . u t i l . C o l l e c t i o n ejbSelectUserIDs(String groupName)ejbSelectUserIDs(String groupName) throws javax.ejb.FinderException; throws javax.ejb.FinderException; 8. 用CMP實現(xiàn)一對多關系4. 4. 增加一個增加一個Select methodSelect method和和Home methodHome method/ /* * * * Home method Home method* * thro
36、ws FinderException throws FinderException* * ejb.home-method view-type = local ejb.home-method view-type = local* */ /public java.util.ArrayList ejbHomeGetUserIDs(String public java.util.ArrayList ejbHomeGetUserIDs(String groupName)groupName) throws javax.ejb.FinderException throws javax.ejb.FinderE
37、xception r e t u r n ( j a v a . u t i l . A r r a y L i s t ) r e t u r n ( j a v a . u t i l . A r r a y L i s t ) ejbSelectUserIDs(groupName);ejbSelectUserIDs(groupName); 8. 用CMP實現(xiàn)一對多關系5. 5. 將將 GroupBean GroupBean 加入到加入到 cmpEJB cmpEJB 模塊中,然后模塊中,然后 lomboz -Generate EJB Classes lomboz -Generate EJB
38、 Classes 6. 6. 重點:建立重點:建立 GroupBean GroupBean 與與 UserBean UserBean 的一對多的雙的一對多的雙向聯(lián)系:向聯(lián)系: 右擊右擊 GroupBean -J2EE -Add CMR GroupBean -J2EE -Add CMR Relationship :Relationship : 8. 用CMP實現(xiàn)一對多關系8. 用CMP實現(xiàn)一對多關系 切換到切換到 UserInfoBean.javaUserInfoBean.java: 右擊右擊 UserInfoBean -J2EE -UserInfoBean -J2EE - Add CMR Re
39、lationship : Add CMR Relationship :8. 用CMP實現(xiàn)一對多關系8. 用CMP實現(xiàn)一對多關系 在在 UserInfoBean.java 中生成的代碼(需要手工添加中生成的代碼(需要手工添加jboss.relation):):/* Getter for CMR Relationship* erface-method view-type=local* ejb.relation name = GroupsHaveUserInfos* role-name = UserInfosInGroup* target-multiple = yes* jboss.r
40、elation * fk-column = 組別組別 * related-pk-field = name*/public abstract javamxj.ejb.cmp.GroupLocal getGroup();/* Setter for CMR Relationship* erface-method view-type=local*/public abstract void setGroup(javamxj.ejb.cmp.GroupLocal value); -Ok,再次,再次 Generate EJB Classes 8. 用CMP實現(xiàn)一對多關系 在在 UserInfo
41、Bean.java 中生成的代碼(需要手工添加中生成的代碼(需要手工添加jboss.relation):):/* Getter for CMR Relationship* erface-method view-type=local* ejb.relation name = GroupsHaveUserInfos* role-name = UserInfosInGroup* target-multiple = yes* jboss.relation * fk-column = 組別組別 * related-pk-field = name*/public abstract javam
42、xj.ejb.cmp.GroupLocal getGroup();/* Setter for CMR Relationship* erface-method view-type=local*/public abstract void setGroup(javamxj.ejb.cmp.GroupLocal value); -Ok,再次,再次 Generate EJB Classes 8. 用CMP實現(xiàn)一對多關系二、在二、在UserManagementBeanUserManagementBean中添加業(yè)務方法中添加業(yè)務方法增加一個增加一個 GroupLocalHome GroupLo
43、calHome 的變量的變量 groupHomegroupHome,并將它放入并將它放入 ejbCreate ejbCreate 和和 ejbPassivate ejbPassivate 方法中。方法中。1.1. 依次增加以下幾個業(yè)務方法。依次增加以下幾個業(yè)務方法。 8. 用CMP實現(xiàn)一對多關系 3.3.保存,保存,Generate EJB ClassesGenerate EJB Classes,啟動,啟動MySqlMySql, 啟動啟動JBossJBoss服務器,服務器, Deploy Module Deploy Module 。 一切正常,則會在一切正常,則會在 cmp_sample cm
44、p_sample 庫中自動建立一個表:庫中自動建立一個表:grouptablegrouptable。 8. 用CMP實現(xiàn)一對多關系 三、創(chuàng)建客戶端三、創(chuàng)建客戶端1. 1. 右擊右擊 src src 文件夾文件夾 -新建新建 -Lomboz EJB Test Client-Lomboz EJB Test Client Wizard: Wizard: 創(chuàng)建一個創(chuàng)建一個 CMPClient4.java CMPClient4.java 文件文件 2. 2. 修改生成的修改生成的 CMPClient4.javaCMPClient4.java,調(diào)用,調(diào)用UserManagementBeanUserMana
45、gementBean中的方法。中的方法。8. 用CMP實現(xiàn)一對多關系 3. 3. 運行客戶端運行客戶端控制臺輸出:控制臺輸出: 8. 用CMP實現(xiàn)一對多關系 數(shù)據(jù)庫中相對應的表的改變:數(shù)據(jù)庫中相對應的表的改變: 8. 用CMP實現(xiàn)一對多關系8. 用CMP實現(xiàn)一對多關系9. 用CMP實現(xiàn)多對多關系 public abstract class StudentBean implements EntityBean /成員變量在子類中實現(xiàn),定義為abstract型 public abstract Collection getCourses(); public abstract void setCours
46、es (Collection courses); public void ejbLoad() /不需要任何代碼 public void ejbStore() /不需要任何代碼9. 用CMP實現(xiàn)多對多關系 public abstract class CourseBean implements EntityBean /成員變量在子類中實現(xiàn),定義為abstract型 public abstract Collection getStudents(); public abstract void setStudents(Collection students); public void ejbLoad() /不需要任何代碼 public void ejbStore() /不需要任何代碼9. 用CMP實現(xiàn)多對多關系一、設計實體一、設計實體Bean Bean :RoleBeanRoleBean 1. 建立主體部分: 在 CMP_Sample 項目中,右擊“src” -新建 -Lomboz EJB Creation
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 伐木采伐勞務合同范例
- 幼兒園食品安全風險隱患排查的工作總結模版
- 個人律師顧問合同標準文本
- 鄉(xiāng)村魚塘買賣合同范例
- 新質(zhì)生產(chǎn)力和新生產(chǎn)力
- 加權平均數(shù)教學設計
- 2024年醇酸磁漆項目資金申請報告代可行性研究報告
- 高一政治上教學工作總結模版
- 醫(yī)療教育的革新精準醫(yī)療與基因編輯技術的結合點
- 買房定金合同范例6
- 人教版PEP小學英語五年級上冊第二單元Myweek課件
- 鋼筋模板混凝土質(zhì)量培訓課件
- 《給水排水管道工程施工及驗收規(guī)范》-20210801081158
- 追覓在線測評28題及答案
- 2024年中國比例電磁鐵市場調(diào)查研究報告
- 2024秋期國家開放大學《國家開放大學學習指南》一平臺在線形考(任務一至五)試題及答案
- 影視鑒賞智慧樹知到答案2024年南華大學
- 知識產(chǎn)權法(四川師范大學)智慧樹知到答案2024年四川師范大學
- 2024-2030年中國羊絨市場銷售格局與未來發(fā)展動向追蹤報告
- 足療技師免責協(xié)議書
- 古代詩人名人韓愈人物介紹課件
評論
0/150
提交評論