2022年JDBC操作连接MYSQL数据库 .pdf

上传人:Che****ry 文档编号:34879461 上传时间:2022-08-19 格式:PDF 页数:19 大小:364.97KB
返回 下载 相关 举报
2022年JDBC操作连接MYSQL数据库 .pdf_第1页
第1页 / 共19页
2022年JDBC操作连接MYSQL数据库 .pdf_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《2022年JDBC操作连接MYSQL数据库 .pdf》由会员分享,可在线阅读,更多相关《2022年JDBC操作连接MYSQL数据库 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、南京邮电大学软件工程项目实践实验报告题目:JDBC操作学生姓名班级学号日期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - 一:实验内容1 编程实现连接 MySQL 数据库代码,并测试。2 编程实现数据库的 insert 、select 、 update 、delete 等操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -

2、- 第 2 页,共 19 页 - - - - - - - - - 二:分析与设计1 编程实现连接 MySQL 数据库代码,并测试。代码如下:1.- 2.3.import java.sql.*; 4.import javax.swing.*; 5.import java.awt.*; 6.import java.awt.event.*; 7.import java.util.*; 8.9.public class inensshow extends JFrame 10.11.12.private Connection connection; 13.private Statement statem

3、ent; 14.private ResultSet resultSet; 15.private ResultSetMetaData rsMetaData; 16.17./GUI变量定义18.private JTable table; 19.private JTextArea inputQuery; 20.private JButton submitQuery; 21.22.public inensshow() 23. 24./Form的标题25.super( 输入 SQL 语句,按查询按钮查看结果。 ); 26.27.String url = jdbc:mysql:/localhost:330

4、6/web; 28.String username = inens; 29.String password = inens; 30./ 加载驱动程序以连接数据库31.try 32.Class.forName( org.gjt.mm.mysql.Driver ); 33.connection = DriverManager.getConnection( 34.url, username, password ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页 -

5、- - - - - - - - 35. 36./ 捕获加载驱动程序异常37.catch ( ClassNotFoundException cnfex ) 38.System.err.println( 39. 装载 JDBC/ODBC 驱动程序失败。 ); fex.printStackTrace(); 41.System.exit( 1 ); / terminate program 42. 43./ 捕获连接数据库异常44.catch ( SQLException sqlex ) 45.System.err.println( 无法连接数据库 ); 46.sqlex.printStackTrace

6、(); 47.System.exit( 1 ); / terminate program 48. 49./ 如果数据库连接成功,则建立GUI 50./SQL语句51.String test=SELECT * FROM data; 52.inputQuery = new JTextArea( test, 4, 30 ); 53.submitQuery = new JButton( 查询 ); 54./Button事件55.submitQuery.addActionListener( 56.new ActionListener() 57.public void actionPerformed( A

7、ctionEvent e ) 58. 59.getTable(); 60. 61. 62.); 63.64.JPanel topPanel = new JPanel(); 65.topPanel.setLayout( new BorderLayout() ); 66./ 将 输入查询 编辑框布置到 CENTER 67.topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER ); 68./ 将 提交查询 按钮布置到 SOUTH 69.topPanel.add( submitQuery, BorderLayout.SOUTH

8、); 70.table = new JTable(); 71.Container c = getContentPane(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - 72.c.setLayout( new BorderLayout() ); 73./ 将topPanel编辑框布置到 NORTH 74.c.add( topPanel, BorderLayout.NORTH ); 75./ 将table编辑框布置到 CEN

9、TER 76.c.add( table, BorderLayout.CENTER ); 77.getTable(); 78.setSize( 500, 300 ); 79./ 显示 Form 80.show(); 81. 82.83.private void getTable() 84. 85.try 86./ 执行 SQL 语句87.String query = inputQuery.getText(); 88.statement = connection.createStatement(); 89.resultSet = statement.executeQuery( query ); 9

10、0./ 在表格中显示查询结果91.displayResultSet( resultSet ); 92. 93.catch ( SQLException sqlex ) 94.sqlex.printStackTrace(); 95. 96. 97.98.private void displayResultSet( ResultSet rs ) 99.throws SQLException 100. 101./ 定位到达第一条记录102.boolean moreRecords = rs .next(); 103./ 如果没有记录,则提示一条消息104.if ( ! moreRecords ) 10

11、5.JOptionPane.showMessageDialog( this, 106. 结果集中无记录 ); 107.setTitle( 无记录显示 ); 108.return; 109. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - - 110.Vector columnHeads = new Vector(); 111.Vector rows = new Vector(); 112.try 113./ 获取字段的名称114.

12、ResultSetMetaData rs rsmd = rs.getMetaData(); 115.for ( int i = 1; i = rsmd.getColumnCount(); +i ) 116.columnHeads.addElement( rsmd.getColumnName( i ) ); 117./ 获取记录集118.do 119.rows.addElement( getNextRow( rs, rsmd ) ); 120. while ( rs.next() ); 121./ 在表格中显示查询结果122.table = new JTable( rows, columnHea

13、ds ); 123.JScrollPane scroller = new JScrollPane( table ); 124.Container c = getContentPane(); 125.c.remove(1); 126.c.add( scroller, BorderLayout.CENTER ); 127./ 刷新 Table 128.c.validate(); 129. 130.catch ( SQLException sqlex ) 131.sqlex.printStackTrace(); 132. 133. 134.135.136.private Vector getNext

14、Row( ResultSet rs, 137.ResultSetMetaData rsmd ) 138.throws SQLException 139. 140.Vector currentRow = new Vector(); 141.for ( int i = 1; i = rsmd.getColumnCount(); +i ) 142.currentRow.addElement( rs.getString( i ) ); 143./ 返回一条记录144.return currentRow; 145. 146.147.public void shutDown() 名师资料总结 - - -精

15、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - 148. 149.try 150./ 断开数据库连接151.connection.close(); 152. 153.catch ( SQLException sqlex ) 154.System.err.println( Unable to disconnect ); 155.sqlex.printStackTrace(); 156. 157. 158.159.public static void ma

16、in( String args ) 160. 161.final inensshow app = 162.new inensshow(); 163.app.addWindowListener( 164.new WindowAdapter() 165.public void windowClosing( WindowEvent e ) 166. 167.app.shutDown(); 168.System.exit( 0 ); 169. 170. 171.); 172. 173. 174.MySQL 连接数据库的实际应用代码以下的文章主要是对MySQL 连接数据库的实际应用代码的介绍,我们大家都

17、知道MySQL 连接数据库的应用率以变的越来越广泛,所以关于MySQL 连接数据库的相关知识也越来越受人欢迎,以下就是文章的具体内容介绍。1.使用纯 JDBC 连接数据库使用纯 JDBC 连接数据库JDBC 提供的 API 能够通过纯Java数据库驱动程序转换为数据库管理系统所使用的专用协议来实现和特定的数据库系统交互信息,其原理如图16-3 所示。图 16-3 使用纯 Java驱动程序连接数据库显然,这种方法使应用程序不受ODBC 的限制,但是Java数据库驱动程序升级后,若访问数据库的应用程序想使用升级版本的驱动程序,就必须重新安装新的驱动程序。使用纯Java 数据库驱动程序连接数据库主要

18、有以下两个步骤。(1)加载纯Java 数据库驱动程序目前,很多数据库厂商都提供了自己相应的纯Java数据库驱动程序。当使用纯Java 数据库驱动程序访问数据库时,要保证连接数据库的应用程序所驻留的计算机上安装有相应数据库的驱动程序。例如,如果需要连接MySQL 数据库,就需要下载相应的驱动程序。本书下载的是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 19 页 - - - - - - - - - mysql-connector-java-5.1.7.zip 。 将该 z

19、ip 文件解压后, 找到 mysql-connector-java-5.1.7- bin.jar ,也就是连接数据库的驱动程序。之后,将该程序复制到Tomcat 服务器所使用的JDK 的jrelibext 目录下或者Tomcat 安装目录的 commonlib 目录下。应用程序加载MySQL 驱动程序的代码为:1.try 2. Class.forName(com.mysql.jdbc.Driver); 3. catch(ClassNotFoundException e) 4. System.out.println(e); 5. (2)连接数据库假设应用程序和MySQL 服务器在同一台计算机上,

20、那么应用程序和数据库建立连接的代码为:1.try 2. String url=jdbc:mysql:/ip/databaseName; 3. Connection con =DriverManager.getConnection( 4.url, username, password); 5. catch(SQLException e) 6. System.out.println(e); 7. 通过上述方式与数据库建立连接之后,向数据库系统发送查询命令之前,首先需要创建一个 Statement 对象,用于把SQL 语句发送到数据库系统。例如,要利用上面创建的连接con 创建一个Statement

21、 对象 stmt,可以使用以下代码。1.Statement stmt=con .createStatement(); 之后,可以使用execute, executeQuery,executeUpdate 或者 executeBatch 方法将 SQL语句发送到数据库。如果是从数据库中查询数据,则查询操作结束后会返回一个ResultSet,其中包含一系列的行和列。可以调用next 和各种 getXxx 方法对这些行和列进行处理。在使用完数据库后, 应该关闭连接, 释放与数据库相关联的资源。例如,关闭上面创建的数据库连接 con 可以使用以下代码。1.con.close(); 1.package

22、sample; 2.import java.sql.*; 3.4./* 5. * 这是插入记录到Employee表中的 JDBC 操作过程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 19 页 - - - - - - - - - 6. * Title: databaseMySQL7. * Description: 8. * Copyright: Copyright (c) 20059. * Company: ascent10. * version 1.0 11. */

23、12.13.public class InsertInfo 14. public static void main(String args) 15. try 16. /1 注册数据库JDBC 驱动17. Class.forName(org.gjt.mm.mysql.Driver); 18.19. /2 创建与数据库之间的连接20. Connection con = DriverManager.getConnection(jdbc:mysql:/ 21.localhost:3306/test,root,); 22.23. /3 创建用于转换并发送SQL 语句的 Statement对象24. Pr

24、eparedStatement pstm = con .prepareStatement(insert into 25. employee(sex,name, age) values( ?,?,?); 26.27. /4 执行 SQL 28. for(int i = 0; i 10 ; i+) 29. pstm.setString(1, female); 30. pstm.setString(2, name+i); 31. pstm.setInt(3, i); 32. pstm.executeUpdate(); /step 4 and 5 33. 34. /5 如果是查询SQL,还要处理查询结

25、果,这里是插入语句,因此没有查询结果35. /6 释放 JDBC 对象以及建立的连接36. pstm.close(); 37. con.close(); 38. System.out.println(信息已经插入到表中 ); 39.40. catch(SQLException e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 19 页 - - - - - - - - - 41. System.out.println(插入失败 ); 42. e.printStackT

26、race(System.out); 43. System.out.println(错误代码 is: +e.getErrorCode(); 44. System.out.println(SQL状态 is: + e.getSQLState(); 45. catch(Exception e) 46. e.printStackTrace(System.out); 47. 48. 49. 下面我们就来仔细看一看每一个步骤。1注册驱动程序驱动程序管理器通过引用sql.drivers 系统属性来取得当前系统中可用的JDBC 驱动程序列表。 这个系统属性包含一些用冒号隔开的JDBC 驱动程序的类名,通过这个类

27、名, 驱动程序管理器可以试图满足一个连接请求。使用驱动程序注册更为常见。这种方法使你可以对你要使用的JDBC 驱动程序进行更多的控制。 所有的 JDBC 驱动程序在实例化的时候都必须在驱动程序管理器中注册自己,注册可以通过下列两个方法来实现。(1)Class.forName(foo.Driver).newInstance() (2)new foo.Driver() 我们推荐使用Class.forName()这个方法,不过这两个方法的效果是相同的。JDBC 驱动程序用驱动程序管理器注册自己,这样,它就可以为连接请求服务了。常用的驱动:JDBC-ODBC :sun.jdbc.odbc.JdbcOd

28、bcDriver 。Oracle:oracle.jdbc.driver.OracleDriver 。MySQL :org.gjt.mm.mysql.Driver/com.mysql.jdbc.Driver。PointBase:com.pointbase.jdbc.jdbcUniversalDriver 。Weblogic MS-SQL driver :weblogic.jdbc.mssqlserver4.Driver 。2建立到数据库的连接通过 JDBC 使用数据库的第一步就是建立一个连接。JDBC 连接是由URL 指定的,它的格式如下:名师资料总结 - - -精品资料欢迎下载 - - - -

29、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 19 页 - - - - - - - - - 1.jdbc: 其中,subprotocol 是被请求的数据库连接的类型(如 ODBC ,Oracle,Informix ,等等),而 subname提供了所要建立的连接的一些附加信息。当 JDBC 驱动程序管理器接收到一个要连接的 URL 时,所有已知的JDBC 驱动程序会被询问是否可以为这个URL 服务。通过JDBC-ODBC 桥连接到一个叫做MyData 的 ODBC 数据源的连接的例子如下:1.Connection con

30、= DriverManage.getconnection(jdbc:odbc:MyData); 看上去一切都很顺利,但是 JDBC 驱动程序管理器是怎么知道哪些JDBC 驱动程序在当前的系统中可用呢?有两种机制可以通知驱动程序管理器哪些JDBC 驱动程序可以使用:sql.drivers 属性和 JDBC 驱动程序注册(前面已做过介绍)。3创建 SQL 语句在数据库连接成功建立之后,我们就可以执行那些用来完成实际工作的SQL 语句了。在执行 SQL 语句之前,必须先创建一个语句对象,这个对象提供了到特定数据库SQL 引擎的接口。有下列三种不同类型的语句对象。(1)Statement:基本的语句对

31、象,它提供了直接在数据库中执行SQL 语句的方法。对于那些只执行一次的查询以及DDL 语句(如CREATE TABLE ,DROP TABLE ,等等)来说, Statement对象就足够了。(2)PreparedStatement:这种语句对象用于那些需要执行多次,每次仅仅是数据取值不同的 SQL 语句,它还提供了一些方法,以便指出语句所使用的输入参数。(3)CallableStatement:这种语句对象被用来访问数据库中的存储过程。它提供了一些方法来指定语句所使用的输入输出参数。4执行 SQL 语句下面是一个用语句类来执行SQL SELECT 的一个例子。1.Statement stmt

32、 = con .createStatement(); 2.ResultSet rs = stmt .executeQuery(SELECT * FROM Employee); 5处理结果在执行了一个SQL 语句之后,我们必须处理得到的结果。有些语句仅仅返回一个整型数,指出受到影响的行数(比如UPDATE 和 DELETE 语句)。 SQL 查询( SELECT 语句)返回一个含有查询结果的结果集。结果集由行和列组成,各列数据可以通过相应数据库类型的一系列get 方法(如getString,getInt,getDate,等等)来取得。在取得了一行数据的所有数据之后, 我们可以通过调用next()

33、方法来移到结果集中的下一条记录。JDBC 规范的 1.1版本只允许forward-only (只向前) 型的游标, 而在 JDBC2.0 中有了更健壮的游标控制功能,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 19 页 - - - - - - - - - 我们可以向后移动游标,还可以将游标移动到指定行。这将在后面展开介绍。6从数据库断开连接在结果集、 语句和连接对象用完以后,我们必须正确地关闭它们。连接对象、结果集对象以及所有的语句对象都有close()方法,通过调

34、用这个方法,我们可以确保正确释放与特定数据库系统相关的所有资源。有些开发者喜欢随意使用引用,然后用一个垃圾收集程序专门负责清除对象。我们建议大家在使用了JDBC 驱动程序之后调用相关对象的close()方法,这样可以尽可能地减少由于挂起的对象残留在数据库系统中而造成的内存泄漏。【浅谈 JDBC连接数据库步骤JDBC连接数据库步骤一. 加载驱动导入 jar包Class.forName(driver) 作用:不只是创建一个类的Class 对象,它加载了整相关程序的类。JDBC连接数据库步骤二. 获取连接对象Connectioncon=DriverManager.getConnection(url,

35、user,pwd) url:告诉数据库的位置JDBC连接数据库步骤三. 创建语句对象,执行SQL增删改返回影响所有行非查询1.Statement: 2.Statementst=con .CreateStatement() 3.inti=st .executeUpdate(sql) 下标从一开始4.inti=st .executeUpdate(sql); 5.PreparedStatement: 6.PreparedStatementps=con .PreparedStatement(sql语句 ) 7.ps.setXXX(n,值) 名师资料总结 - - -精品资料欢迎下载 - - - - -

36、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 19 页 - - - - - - - - - 对第 n 个?进行赋值区别用 st 的好处在动态组装SQL时,指动态产生要执行SQL语句用 pst 的好处更好维护避免 SQL注入效率更高扩展用 JDBC的批处理 (BATCH)可以提高效率用 ResultSetMetadata可以获取列的信息(个数,名称)查询8.resultsetrs=pst.executePuery() 9.while() 10.Stringstr=rs.getString(列的位置,列的名称) JDBC连接数据库步

37、骤四. 关闭顺序11.ifrs!=nullrs.close(); 12.pst.close(); 13.con.close(); 具体实例:14.privatefinalStringURL=jdbc:mysql:/localhost:3306/db; 15.privatefinalStringFINDALL=select*fromdept; 16.privateConnectioncon; 17.privatePreparedStatementps; 18.privateResultSetrs; 19.20./ 查询21.publicListfindAll() 名师资料总结 - - -精品资料

38、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 19 页 - - - - - - - - - 22.Listlist=newArrayList(); 23.try 24.Class.forName(com.mysql.jdbc.Driver); 25.con=DriverManager.getConnection(URL,root, 123); 26.ps=con.prepareStatement(FINDALL); 27.rs=ps.executeQuery(); 28.while(rs.next(

39、) 29.DeptDTOdto=newDeptDTO(); 30.dto.setDeptId(rs.getInt(deptId); 31.dto.setName(rs.getString(depName); 32.dto.setPhone(rs.getString(phone); 33.System.out.println(dto.getDeptId()+ +dto.getName()+ +dto.getPhone(); 34.list.add(dto); 35. 36.con.close(); 37. catch(ClassNotFoundExceptione) 38./TODOAuto-g

40、eneratedcatchblock 39.e.printStackTrace(); 40. catch(SQLExceptione) 41./TODOAuto-generatedcatchblock 42.e.printStackTrace(); 43. 44.45.returnlist; 46. 47.48.49.50./ 添加,添加中关闭连接的方法相比查询中的关闭方法更好一些51.publicvoidadd(DeptDTOdto) 52.try 53.Class.forName(com.jdbc.mysql.Driver); 54.con=DriverManager.getConnect

41、ion(jdbc:mysql:/localhost:3306/db, root, 123); 55.ps=con.prepareStatement(insertintodept(deptId,depName,phone)values(?,?,?); 56.ps.setInt(1,dto.getDeptId(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 19 页 - - - - - - - - - 57.ps.setString(2,dto.getName();

42、58.ps.setString(3,dto.getPhone(); 59.ps.execute(); 60. catch(ClassNotFoundExceptione) 61./TODOAuto-generatedcatchblock 62.e.printStackTrace(); 63. catch(SQLExceptione) 64./TODOAuto-generatedcatchblock 65.e.printStackTrace(); 66. 67.finally 68.try 69.if(con!=null&!con.isClosed() 70.con.close(); 71. 7

43、2. catch(SQLExceptione) 73./TODOAuto-generatedcatchblock 74.e.printStackTrace(); 75. 76.77. 78.79. 80.le.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) 81.atoracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801 ) 82.atjava.sql.DriverManager.getConnection(UnknownSour

44、ce) 83.atjava.sql.DriverManager.getConnection(UnknownSource) 84.attool.DbConnect.getConnect(DbConnect.java:45) 85.attool.DbConnect.main(DbConnect.java:54) 二、JDBC连接 MySQL 方式下面是使用 JDBC连接 MySQL 的一个小的教程1、查找驱动程序MySQL 目前提供的 java 驱动程序为 Connection/J , 可以从 MySQL 官方网站下载,并找到 MySQL-connector-java-3.0.15-ga-bin.

45、jar文件,此驱动程序为纯java 驱名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 19 页 - - - - - - - - - 动程序,不需做其他配置。2、动态指定 classpath 如果需要执行时动态指定classpath ,就在执行时采用 cp 方式。否则将上面的.jar文件加入到 classpath环境变量中。3、加载驱动程序1.try 2.Class.forName(com.MySQL.jdbc.Driver); 3.System.out.println(

46、Success loading MySQL Driver!); 4.catch(Exception e) 5. 6.7.System.out.println(Error loading MySQL Driver!); 8.e.printStackTrace(); 9. 4、设置连接的url jdbc :MySQL :/localhost/databasename?pa=vapa=va 在接下来的内容中,将使用MySQL 数据库系统进行操作。MySQL 的 JDBC 驱动程序属于 Type 4。您可以在以下的网址获得MySQL 的 JDBC 驱动程序,本章中将使用MySQL Connector/

47、J 5.0。http:/ 中包括了一个MySQL 数据库系统的简介,足够您了解这一章中将用到的一些数据库操作命令。6、MySQL 数据库1.Class.forName(org.gjt.mm.mysql.Driver).newInstance(); 2.String url =jdbc:mysql:/localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_13./myDB为数据库名4.Connection conn= DriverManager.getConnection(url); 名师

48、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 19 页 - - - - - - - - - 或1.Class.forName(com.mysql.jdbc.Driver); 2.String url=jdbc:mysql:/localhost/myDB? ser=root&password=system ; 3.conn = DriverManager.getConnection(url); http:/ 2 编程实现数据库的 insert 、select 、 update 、delete 等操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 19 页 - - - - - - - - - 三:实验结果及分析四:成绩(优,良、中、差)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 19 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁