![Web數(shù)據(jù)庫學生實驗報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/9a4c28bc-a814-486d-9db2-005c126732b1/9a4c28bc-a814-486d-9db2-005c126732b11.gif)
![Web數(shù)據(jù)庫學生實驗報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/9a4c28bc-a814-486d-9db2-005c126732b1/9a4c28bc-a814-486d-9db2-005c126732b12.gif)
![Web數(shù)據(jù)庫學生實驗報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/9a4c28bc-a814-486d-9db2-005c126732b1/9a4c28bc-a814-486d-9db2-005c126732b13.gif)
![Web數(shù)據(jù)庫學生實驗報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/9a4c28bc-a814-486d-9db2-005c126732b1/9a4c28bc-a814-486d-9db2-005c126732b14.gif)
![Web數(shù)據(jù)庫學生實驗報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/9a4c28bc-a814-486d-9db2-005c126732b1/9a4c28bc-a814-486d-9db2-005c126732b15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Web數(shù)據(jù)庫技術(shù)教師實驗指導手冊及評分標準 院 系: 信息科學與技術(shù)學院專 業(yè): 信息管理與信息系統(tǒng)班 級: 信A1321/22任課教師: 張海 實驗報告(一)院系:信息學院 課程名稱:Web數(shù)據(jù)庫技術(shù) 日期:班 級姓 名專 業(yè)學 號實 驗 室實驗名稱Jdbc應(yīng)用成 績 評 定教 師 簽 名實驗目的1、 掌握數(shù)據(jù)庫驅(qū)動的加載方式2、 掌握connection對象的使用方法3、 掌握statement對象使用方法4、 掌握事務(wù)的處理機制5、掌握數(shù)據(jù)持久層的設(shè)計實驗內(nèi)容connection對象、statement對象等應(yīng)用1、 請設(shè)計一個工程類通過配置文件如下perties來獲得數(shù)據(jù)庫
2、連接的相關(guān)信息,并通過該配置文件獲得數(shù)據(jù)庫連接對象。(20分)url=jdbc:mysql://u5B66u751Fu5E93userName=adminpwd=adminpublic class connectionFactory public static Connection getConnection() throws SQLException請把getConnection()方法補全。要求設(shè)計合理規(guī)范,必須有截圖。答案:2、 已知學生定義如下:public class student private int id; private String stuId; pri
3、vate String name; private String domCard;/樓棟宿舍號“31-507”private String bedNo;/床鋪號public student(String stuId, String name, String domCard, String bedNo) super();this.stuId = stuId; = name;this.domCard = domCard;this.bedNo = bedNo;public String toString()return "id="+id+"學號=&qu
4、ot;+stuId+”;姓名=”+name+”;宿舍號=”+domCard+”;床鋪號=”+bedNo;/相應(yīng)get、set方法省略有一class studentDataspublic static ArrayList<student> students=new ArrayList<student>();staticstudent stu=new student("會計A001121","張三","31棟908",1); students.add(stu); stu=new student("會計A0
5、01166","李四","31棟908",2); students.add(stu); stu=new student("會計A001177","王五","31棟807",4); students.add(stu); 現(xiàn)要求 (1)根據(jù)student類建立一個學生表用來保存student類的相關(guān)屬性。(2)通過jdbc,將studentDatas的students集合中的所有學生保持到學生表中;(3)通過jdbc,將學生表中所有的宿舍是” 31棟908”學生全部調(diào)整到“20棟371”宿
6、舍;(4)通過jdbc,刪除"31棟807"床鋪號是4的學生。20分3、 ResultSet對象操作請將上題中宿舍號最后一位是”8”的學生信息全部顯示出來。4、請用perparedStatement對象保存如下:student stu=new student("信息A110099","劉六","31棟818",8); student對象的實例stu到數(shù)據(jù)中。興趣題:1、分頁功能的實現(xiàn)原理方法一:JDBC實現(xiàn)用JDBC從ResultSet中取出一個指定范圍(offset, span)的數(shù)據(jù),可以采用這樣的方法。Pre
7、pareStatement ps = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ps.setMaxRows(offset span);/最終讀到第幾條 rs = ps.executeQuery();rs.absolute(offset);/定位到每頁的開始記錄處while(rs.next()/ conn.prepareStatement(sql,游標類型,能否更新記錄);/ 游標類型:/ ResultSet.TYPE_FORWORD_ONLY:只進游標/ R
8、esultSet.TYPE_SCROLL_INSENSITIVE:可滾動。但是不受其他用戶對數(shù)據(jù)庫更改的影響。/ ResultSet.TYPE_SCROLL_SENSITIVE:可滾動。當其他用戶更改數(shù)據(jù)庫時這個記錄也會改變。/ 能否更新記錄:/ ResultSet.CONCUR_READ_ONLY,只讀/ ResultSet.CONCUR_UPDATABLE,可更新方法二:數(shù)據(jù)庫的sql語言實現(xiàn)Mysql 的limit SQL為Select * from message where forum_id = ? and created_time > ? order by created_t
9、ime desc limit ?, ?后面的兩個limit ?, ? 分別為 offset, span。Oracle的limit SQL為select * from ( select row_.*, rownum rownum_ from (Select * from message where forum_id = ? and created_time > ? order by created_time desc) row_ where rownum <= ?) where rownum_ > ?后面的兩個limit ?, ? 分別為 offset span, offset
10、。2、請執(zhí)行在mysql中執(zhí)行insert into 宿舍表(學號,姓名,宿舍,床鋪) values (會計A001121,張三,24棟908,1)兩次。請通過JDBC將宿舍表中學號重復的記錄去掉,只保留其中的一條。5、事務(wù)處理請先在mysql中運行如下語句:CREATE TABLE 賬戶表 ( 賬戶名 varchar(10) NOT NULL DEFAULT '', 金額 double DEFAULT NULL, PRIMARY KEY (賬戶名) ENGINE=InnoDB DEFAULT CHARSET=utf8;- - Records of 賬戶表- -INSERT I
11、NTO 賬戶表 VALUES ('張三', '100');INSERT INTO 賬戶表 VALUES ('李四', '200');INSERT INTO 賬戶表 VALUES ('王五', '50');請運行如下程序查看結(jié)果(1)程序1:public class trans1 /* * param args */public static void main(String args) Connection conn1=null;Statement stmn1=null;try ();conn1.s
12、etAutoCommit(true);stmn1=conn1.createStatement();stmn1.executeUpdate("update 賬戶表 set 金額=金額+5 where 賬戶名='張三'"); System.out.println("update語句執(zhí)行"); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finallyif(stmn1!=null)try stmn1.close(); catch (SQL
13、Exception e) / TODO Auto-generated catch blocke.printStackTrace();if(conn1!=null)try conn1.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();(2)程序2:public class trans2 /* * param args */public static void main(String args) Connection conn1=null;Statement stmn1=null
14、;try conn1=connectionFactory.getConnection();conn1.setAutoCommit(false);nt();stmn1.executeUpdate("update 賬戶表 set 金額=金額+5 where 賬戶名='張三'"); System.out.println("update語句執(zhí)行"); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finallyif(stmn1!=null)t
15、ry stmn1.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();if(conn1!=null)try conn1.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();請查詢數(shù)據(jù)庫記錄內(nèi)容。 (3)完整事務(wù)程序3:public class trans2 /* * param args */public static void main(String args
16、) Connection conn1=null;Statement stmn1=null;try conn1=connectionFactory.getConnection();conn1.setAutoCommit(false);stmn1=conn1.createStatement();stmn1.executeUpdate("update 賬戶表 set 金額=金額+5 where 賬戶名='張三'"); conn1 mit();System.out.println("insert語句執(zhí)行"); catch (SQLExceptio
17、n e) / TODO Auto-generated catch blocke.printStackTrace();try ck(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();finallyif(stmn1!=null)try stmn1.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();if(conn1!=null)try conn1.close(); cat
18、ch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();如果需要將下面"update"及"insert"作為一個事務(wù)來整體提交,請問下面代碼如果改?public class trans3 /* * param args */public static void main(String args) Connection conn1=null;Connection conn2=null;Statement stmn1=null; Statement stmn2=null
19、;try conn1=connectionFactory.getConnection();conn2=connectionFactory.getConnection();stmn1=conn1.createStatement();stmn1.executeUpdate("update 賬戶表 set 金額=金額+5 where 賬戶名='張三'"); System.out.println("update語句執(zhí)行");stmn2=conn2.createStatement();stmn2.executeUpdate("INSERT
20、 INTO 賬戶表 VALUES ('張三', '500')");System.out.println("insert語句執(zhí)行"); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finallyif(stmn1!=null)try stmn1.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();if(stmn2!
21、=null)try stmn1.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();if(conn1!=null)try conn1.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();已知有線程類定義如下:import java.sql.Connection;import ;import java.sql.Statement;import java.util.
22、Date;public class clientThread extends Threadprivate String sql=null;private int wait=4000;public String getSql() return sql;public void setSql(String sql) this.sql = sql;public int getWait() return wait;public void setWait(int wait) this.wait = wait;public void run()Connection conn= connectionFacto
23、ry.getConnection();try conn.setAutoCommit(false);Statement stmn=conn.createStatement();stmn.executeUpdate(sql);System.out.println(new Date().toString()+" 執(zhí)行 "+sql);this.sleep(wait);conn mit();System.out.println("線程結(jié)束"+(new Date().toString(); catch (Exception e) / TODO Auto-genera
24、ted catch blocke.printStackTrace();public class client1 /* * param args */public static void main(String args) clientThread client=new clientThread();client.setWait(10000);client.setSql("update 宿舍表 set 姓名=姓名+'1' where 床鋪=1"); client.start();public class client2 /* * param args */pu
25、blic static void main(String args) clientThread client=new clientThread();client.setWait(6000);client.setSql("update 宿舍表 set 姓名=姓名+'A' where 床鋪=1"); client.start();請先執(zhí)行client1然后馬上執(zhí)行client2,等所有程序,數(shù)據(jù)庫中床鋪=1的記錄內(nèi)容是什么?為什么會這樣?實驗報告(二)院系:信息學院 課程名稱:Web數(shù)據(jù)庫技術(shù) 日期:班 級A1321姓 名黃偉峰專 業(yè)信息管理與信息系統(tǒng)學 號實
26、驗 室實驗名稱Servlet應(yīng)用成 績 評 定教 師 簽 名實驗目的1、 掌握servlet的配置方法2、 掌握web服務(wù)器的配置過程3、 掌握 Servlet類的用法4、 掌握session等對象的用法5、 掌握請求轉(zhuǎn)發(fā)功能的應(yīng)用6、掌握SerlvetConfig上下文的用法實驗內(nèi)容Servlet配置、servlet設(shè)計、會話管理、請求流轉(zhuǎn)、上下文應(yīng)用1、 請建立一個servlet類用于顯示當前的系統(tǒng)時間。寫出它的url配置寫法20分。答案:public void doPost( ServletRequest request, ServletResponse response)throws
27、ServletException, IOException response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN">");out.println("<HTML>");out.println(" <HEAD><TITLE>
28、A Servlet</TITLE></HEAD>");out.println(" <BODY><center>");out.println(" <div style='font-size: 50px ; padding-top: 250px'>");Date date = new Date() ;out.print(date.toLocaleString() ;out.println(" </div>");out.println(&quo
29、t; </center> </BODY>");out.println("</HTML>");out.flush();out.close();url配置寫法:生成servlt時將工程名去掉,只保留文件名,便于訪問2、領(lǐng)會多用戶并發(fā)訪問的機制,請建立一個 Servlet“servletUsers”類,在該類的成員代碼如下:public class serveltUsers extends Servlet private Integer x=1;public void doGet( ServletRequest request, Se
30、rvletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException response.setContentType("text/html");response.setCharacterEncoding("utf-8");PrintWr
31、iter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");o
32、ut.println("當前x的值是"+x);out.flush();synchronized (x) x+; Thread thread=Thread.currentThread(); try thread.sleep(1000*5); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace(); out.println("當前serlvet實例阻塞5秒后,當前x的值是"+x);out.println(" </BODY>&q
33、uot;);out.println("</HTML>");out.flush();out.close();請在5秒內(nèi)用兩個瀏覽器窗口瀏覽該 Servlet類,看看效果如何。為什么是這個效果!20分。答:效果是當?shù)谝粋€界面還未刷新,第二個界面無法看到效果。原因是:在全局變量x上加了鎖,保證了同一時間,只有一個瀏覽器才能獲得x當前值3、 請設(shè)計一個servlet,當連續(xù)三次訪問該servlet是分別向客戶輸出: 第1次: 用戶瀏覽器中顯示:藍色顏色的 “聯(lián)系訪問中的第1次” 第2次: 用戶瀏覽器中顯示:紅色顏色的 “聯(lián)系訪問中的第2次” 第3次: 用戶瀏覽器中顯示:
34、黑色顏色的 “聯(lián)系訪問中的第3次”public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException this.doPost(request, response) ;public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException request.setCharacterEncoding("utf-8
35、") ;response.setCharacterEncoding("utf-8") ;response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN">");out.println("<HTML>");out.println(&qu
36、ot; <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY><center>");out.print(" <div style='font-size: 50px ; padding-top: 250px'>");x+ ;/藍色 0,0,255 紅色:rgb(255,0,0) 黑色:rgb(0,0,0)if (x=1) out.print("<div style=&
37、#39;color:blue '>");else if (x=2) out.print("<div style='color:red '>");else if (x=3) out.print("<div style='color:black '>");x = 0 ;out.print("第"+x+"次:");out.print("“連續(xù)訪問中的第"+x+"次”");out.print("
38、 </div>");out.print(" </div>");out.print(" </center> </BODY>");n("</HTML>");out.flush();out.close();4、 請將提供的servelt.rar工程解壓后添加到myeclipse工作區(qū)中,打開mysql將工程中的db目錄下的”導入到mysql數(shù)據(jù)庫中。在工程的serviceDao包中有一個studentServicesDao,請根據(jù)代碼中注釋的功能結(jié)合jdbc中dao模式的
39、設(shè)計要求將public student login(String stuId,String name)throws myException student stu = new student() ; if(stuId!=null&&!"".equals(stuId)&&name!=null&&!"".equals(name) return null ; else Connection conn=null; try conn=connectionFactory.getConnection(); String
40、sql="select * from 學生基本情況表 where 學號 ='"+stuId+"' and 姓名='"+name+"'" Statement stat=conn.createStatement(); ResultSet rs=stat.executeQuery(sql); stu.setName(name) ; conn mit(); connectionFactory.closeAll(rs, stat, conn); catch (SQLException e) / TODO Auto
41、-generated catch block e.printStackTrace(); return stu ; 補充完整。20分。5、 現(xiàn)在在webroot下有index.jsp用來展現(xiàn)學生的登錄,現(xiàn)在要求學生輸入學號、姓名后交給login這個servlet去處理,login的功能要求如下:(1) 判斷用戶輸入的學號和姓名在學生基本表中是否存在,如果存在提前該學生信息,并將這個學生信息交給另外一個servlet-“dispStudent”去顯示。(2) 如果用戶輸入的學號和姓名在學生基本表中不存在,就直接給用戶反饋”找不到輸入姓名的學生”。DispStudent這個servlet的功能: 顯
42、示請求轉(zhuǎn)發(fā)過來的學生所有信息。1)public class login extends Servlet public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException doPost(request, response) ;public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException request.se
43、tCharacterEncoding("utf-8") ;response.setCharacterEncoding("utf-8") ;response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();boolean isOk = false;String name=request.getParameter("name"); String stuId=request.getParameter(&quo
44、t;stuId"); if(name=null|"".equals(name)|stuId=null|"".equals(stuId) out.print("用戶名或者密碼為空") ; else Connection conn = null ; try conn = connectionFactory.getConnection() ; String sql = "select * from 學生基本情況表 where 姓名 ='"+name+"' and 學號='&qu
45、ot;+stuId+"'" ; Statement stat = conn.createStatement() ; ResultSet rs = stat.executeQuery(sql) ; if (rs.next() isOk = true ; conn mit() ; connectionFactory.closeAll(rs, stat, conn ,null) ; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); if(isOk=true) requ
46、est.setAttribute("stuname",name); request.getRequestDispatcher("/DispStudent").forward(request, response); else out.print("用戶名或者密碼錯誤") ; / response.sendRedirect("index.jsp"); 2)public class DispStudent extends Servlet public void doGet( ServletRequest request,
47、 ServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException response.setContentType("text/html;charset=utf-8");/String className=request.getParameter(
48、"stuId").substring(0,5);String stuname=(String)request.getAttribute("stuname");student stu=null;Connection conn=null;try conn=connectionFactory.getConnection();String sql="select * from 學生基本情況表 where 姓名 like '"+stuname+"'"Statement stat=conn.createStat
49、ement();ResultSet rs=stat.executeQuery(sql);System.out.println(rs.toString();while(rs.next()stu=new student();stu.setId(rs.getInt("id");stu.setStuId(rs.getString("學號");stu.setPro(rs.getString("專業(yè)名稱");stu.setName(rs.getString("姓名");stu.setSex(rs.getString("
50、;性別");conn mit();connectionFactory.closeAll(rs, null, conn, null); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN">");out.println
51、("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY><center><table border='1' width='400'><tr><td>id</td><td>學號</td><td>姓名</td><td>
52、;專業(yè)名稱</td><td>性別</td></tr>");out.print("<tr><td>"+stu.getId()+"</td><td>"+stu.getStuId()+"</td><td>"+stu.getName()+"</td><td>"+stu.getPro()+"</td><td>"+stu.getSe
53、x()+"</td></tr>");out.println("</table></center> </BODY>");out.println("</HTML>");out.flush();out.close();6、 用戶訪問統(tǒng)計,當用戶首次訪問某個servlet時,該servlet的訪問總次數(shù)加1,如果該用戶已經(jīng)訪問了該servlet,再訪問時不加1,要求該統(tǒng)計次數(shù)能在其他servlet中被調(diào)用。 /統(tǒng)計訪問次數(shù)public int cisu( ServletR
54、equest request, ServletResponse response,String name) throws Exception /判斷是否是同一個用戶Cookie cookies = request.getCookies() ;for (int i = 0; cookies!=null&&i < cookies.length; i+) if (cookiesi.getName().equals("name") if (!URLDecoder.decode(cookiesi.getValue(), "UTF-8").equals(name) x+ ;/用戶再次訪問Cookie cookie = new Cookie("name",URLEncoder.encode(name, "UTF-8") ;cookie.setMaxAge(24*3600) ;cookie.setPath("/servelt") ;response.addCookie(cookie) ;return x ;7、 cookie使用,當用戶輸入用戶名是張三,密碼是1234時,請在servlet中創(chuàng)建一個有效時間是300秒的cookie對象,并回傳到用戶瀏覽器,瀏覽器再訪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- PQA-18-生命科學試劑-MCE-3779
- Filiformine-生命科學試劑-MCE-8234
- 11-Hydroxy-9-R-hexahydrocannabinol-生命科學試劑-MCE-8544
- 4-Iso-THC-4-Iso-tetrahydrocannabinol-生命科學試劑-MCE-2807
- 2025年度磚廠承包與市場拓展合作協(xié)議
- 2025年新推出門面房出租管理服務(wù)合同
- 二零二五年度企業(yè)自愿離職合同解除范本及離職補償金計算標準
- 二零二五年度數(shù)字音樂版權(quán)互惠合作合同
- 二零二五年度洗煤廠煤炭洗選技術(shù)租賃合同
- 智能科技與家庭旅游的融合探索
- 2024全國能源行業(yè)火力發(fā)電集控值班員理論知識技能競賽題庫(多選題)
- 公司員工外派協(xié)議書范文
- 信息科技重大版 七年級上冊 互聯(lián)網(wǎng)應(yīng)用與創(chuàng)新 第二單元教學設(shè)計 互聯(lián)網(wǎng)原理
- 肺栓塞的護理查房完整版
- 手術(shù)患者手術(shù)部位標識制度
- 運輸安全生產(chǎn)知識培訓試卷
- 抖音麗人行業(yè)短視頻直播項目運營策劃方案
- (2024年)知識產(chǎn)權(quán)全套課件(完整)
- 2024-2030年中國城市軌道交通行業(yè)發(fā)展現(xiàn)狀分析及市場供需預測報告
- 預防靜脈血栓疾病知識講座
- 《社區(qū)康復》課件-第十一章 其他疾病的社區(qū)康復實踐
評論
0/150
提交評論