java程序设计教程 第11章.ppt

上传人:max****ui 文档编号:6361986 上传时间:2020-02-23 格式:PPT 页数:96 大小:805.50KB
返回 下载 相关 举报
java程序设计教程 第11章.ppt_第1页
第1页 / 共96页
java程序设计教程 第11章.ppt_第2页
第2页 / 共96页
java程序设计教程 第11章.ppt_第3页
第3页 / 共96页
点击查看更多>>
资源描述
第11章数据库编程 11 1JDBC技术简介11 2JDBC的结构11 3JDBC驱动程序的类型11 4JDBC在数据库访问中的应用11 5JDBC综合应用示例本章小结习题 11 1JDBC技术简介JDBC JavaDataBaseConnectivity 是Java语言为了支持SQL功能而提供的与数据库相连的用户接口 JDBC中包括了一组由Java语言编写的接口和类 都独立于特定的DBMS 或者说它们可以和各种数据相关联 即独立于数据库管理系统DBMS的应用提供了能与多个不同数据库连接的通用接口 这对于数据库程序来说 想要访问多种数据库 只需要一个统一的接口就可以实现 在Java中JDBC提供了Java访问数据库平台统一的API JDBC实际上就是由Java实现的数据库访问中间件 程序员可以通过JDBC向各种关系型数据库发送SQL语句 只需要使用JDBC提供的几个类 对象 或接口即可 而不必为不同的数据库编写不同的程序 有了JDBC以后 对于数据库编程 程序员只需要在Java语言中使用SQL语言 使Java应用程序或JavaApplet实现对分布在网络上的各种数据库的访问 而不用考虑底层具体DBMS的连接和访问过程 JDBC由一组Java语言编写的接口和类组成 使用内嵌式的SQL 主要实现三大功能 1 建立与数据库的连接 2 执行SQL声明 向数据库发送SQL语句 3 处理数据库返回的SQL执行结果 JDBC支持基本的SQL功能 使用它可以方便地与不同的关系数据库建立连接 进行相关操作 无须再为不同的DBMS分别编写程序 JDBC是一种底层API 意味着它将直接调用SQL命令 同时也是构造高层API和数据库开发工具的基础 高层API和数据库开发工具应该使用户界面更加友好 使用更加方便和易于理解 不过所有这样的API最终将被翻译为像JDBC这样的底层API 两种基于JDBC的高层API 一种是SQL语言嵌入Java的预处理器 另一种是实现从关系数据库到Java类的直接映射 目前都正处于开发阶段 由于JDBC带来的便捷 越来越多的程序员已经开始利用JDBC为基础的工具进行开发 使开发工作更加容易 而程序员同时也正在开发让最终用户更加容易访问数据库的应用程序 Java程序通过JDBC访问数据库的关系如图11 1所示 图11 1Java程序通过JDBC访问数据库 11 2JDBC的结构11 2 1JDBCAPIJDBCAPI是面向程序员的 Java程序员通过调用此API可以实现连接数据库 执行SQL语句并返回结果集 JDBCAPI主要由一系列的接口定义所构成 主要的接口如表11 1所示 11 2 2JDBCDriverAPI面向底层的JDBCDriverAPI主要是针对数据库厂商开发数据库底层驱动程序使用的 一般情况下用于开发应用程序的程序员用不到这些类库 Java的应用程序员通过SQL包中定义的一系列抽象类对数据库进行操作 而实现这些抽象类并完成实际操作 则是由数据库驱动器Driver运行的 最终保证Java程序员通过JDBC实现对不同数据库的操作 其结构如图11 2所示 图11 2JDBCDriverAPI结构图 11 3JDBC驱动程序的类型目前比较常见的JDBC驱动程序可分为以下四种 1 JDBC ODBC和ODBC驱动程序这种驱动器通过ODBC驱动器提供数据库连接 JDBC在设计上和ODBC很类似 JDBC和数据库的连接方法之一是先建立起一个JDBC ODBC桥接器 由于微软产品ODBC驱动程序已经被广泛应用 因此建立这种桥接器后 JDBC就有能力访问各种类型的数据库 使用这种驱动器 要求每一台客户机都要装入ODBC的驱动器 2 Native APIpartly JavaDriver 本地API这种驱动方式将数据库厂商的特殊协议转化成Java代码以及二进制类码 使Java数据库客户与数据库服务器通信 各客户机使用的数据库可能各不相同 需要在客户机上装有相应DBMS的驱动程序 3 JDBC网络纯Java驱动程序这种驱动程序将JDBC指令转化成独立于DBMS的网络协议形式 再由服务器转化为特定DBMS的协议形式 这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上 有关DBMS的协议由各数据库厂商决定 这种驱动器可以连接到不同的数据库上 是最为灵活的JDBC驱动程序 将来也许所有这种解决方案的提供者都能提供适合于Intranet用的产品 为了使这些产品也支持广域网存取 它们必须处理Web所提出的安全性 通过防火墙的访问等方面的要求 目前一些厂商已经开始将JDBC驱动程序加到他们现有的数据库中间件产品中 4 本地协议纯Java驱动程序这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议 这相当于客户机直接与服务器联系 是Intranet访问的一个很实用的解决方法 以上四种驱动程序中 后两种都是纯Javadriver 相对效率更高 更具有通用性 但前两种比较容易获得 使用比较普遍一些 11 4JDBC在数据库访问中的应用JDBC与Acess SQLServer Oracle等各种数据库的连接 首先需要准备相应的运行环境 本例采用JDK1 5 0作为开发工具 使用Eclipse3 2集成开发环境 可以提供一些演示功能 操作系统最好是Windows2000或者WindowsXP 并装好至少一种数据库 一个基本的JDBC程序开发编程步骤主要包含以下7步 1 引入相应的类和包 importjava sql 2 加载合适的JDBC驱动程序 LoadtheDriver 3 连接数据库 ConnecttotheDataBase 4 执行SQL语句 ExecutetheSQL Connection CreateStatement executeQuery executeUpdate 5 从取得的ResultSet对象中获取结果 Retrievetheresultdata 6 将数据库中各种类型转换为Java中的类型 通过getXXX方法 Showtheresultdata 7 关闭 Close closetheresultset对象 closethestatement对象 closetheconnection对象 下面按照JDBC编程步骤详细介绍JDBC在数据库访问中的应用 11 4 1建立与数据库的连接1 设置数据源在数据库连接之前需要加载相应的数据源 采用JDBC ODBC和ODBC驱动程序 下面以SQLServer数据库为例简要说明如何设置数据源 一般是在控制面板的管理工具中打开ODBC项 出现ODBC数据源管理器对话框 然后选择UserDSN选项卡 单击Add按钮 选择想为其安装数据源的驱动程序 并点击完成 接着会出现创建到SQLServer的新数据源 如图11 3所示 按照此向导一步步往下操作 直到数据源配置成功 具体步骤将在11 5节里详细介绍 图11 3设置数据源 2 引入相应的类和包任何使用JDBC的源程序都需要输入java sql包 即importjava sql 必要的时候还需要装载相应的JDBC ODBC驱动程序的包 如importsun jdbc odbc JdbcOdbcDriver 然后声明如下的对象 ResultSetrs null Connectionconn null Connection代表和数据库的连接 连接过程包括所执行的SQL语句和该连接上返回的结果 3 装载驱动程序与数据库连接之前还需要装载驱动程序 一般常用的是Class forName 方法显示装载驱动 如果采用JDBC ODBC和ODBC驱动程序 用下列代码装载 Class forName sun jdbc odbc JdbcOdbcDriver Class是java lang包中的一个类 该类通过调用它的静态方法forName就可以建立JDBC ODBC桥接器 执行该代码将装载驱动 并且在装载时 驱动将自动向JDBC注册自己 使用Class forName 方法可能抛出异常 因此在驱动程序类有可能不存在时 需要捕获这个异常 标准是 try 注册数据库Class forName sun jdbc odbc JdbcOdbcDriver 捕获异常catch Java lang ClassNotFoundExceptione System err println e getMessage 4 连接到数据库与数据库建立连接的标准方法是调用DriverManager getConnection 该方法接受含有某个url的字符串 DriverManager类是JDBC管理层 尝试找到可与指定url所代表的数据库进行连接的驱动程序如下 Stringurl jdbc odbc 数据源名字 Connectionconn DriverManager getConnection url 数据源登录名 数据源登录密码 第一条语句定义了一个字符串变量 变量内容是一种JDBC连接所特定的URL JDBCURL的标准语法是 jdbc 子协议 子名称 其中JDBCURL中协议总是jdbc 如果采用JDBC ODBC桥驱动 JDBCURL以jdbc odbc开始 余下URL通常是数据源名字或数据库系统 例如使用ODBC存取名为 library 的ODBC数据源 JDBCURL是jdbc odbc library 第二条语句通过调用getConnection方法创建与数据库的连接 并返回一个Connection对象 11 4 2执行查询语句与数据库建立连接成功后 就可以向所建立连接的数据库传送SQL语句 其中JDBC对能够被发送的SQL语句类型不加任何限制 在和数据库建立连接后 使用三种对象Statement PreparedStatement和CallableStatement查询数据库 在建立了SQL对象后 这个对象就可以调用相应的方法实现对数据库的查询和修改 并将查询结果存放在一个ResultSet类声明的对象中 也就是说 SQL语句对数据库的查询操作将返回一个ResultSet对象 1 StatementStatement对象实现对数据库的一般查询功能 在JDBC里面可采用Statement对象来实现发送SQL语句到数据库 Statement对象可把简单查询语句发送到数据库 允许执行简单的查询 1 创建对象 首先创建一个Statement对象 它封装代表要执行的SQL语句 并执行SQL语句以返回一个ResultSet对象 通过Connection类中的createStatement 方法来实现 对象执行后得到正确的结果 Statementstmt con createStatement 2 执行SQL查询语句 查询数据库中的数据 Statement接口有三个查询方法 executeQuery executeUpdate 和execute executeQuery 方法执行简单的选择查询 例如SELECT语句 executeQuery的参数是String对象 返回的是一个ResultSet类的对象 executeUpdate 方法执行SQL的UPDATE INSERT或DELETE语句 返回整数值 并给出受查询影响的行数 execute 方法中execute用于执行返回多个结果集 多个更新计数或二者组合的语句 一般不需要此功能 如 ResultSetrs stmt executeQuery Select fromStudent info stmt executeUpdate updateStudent infosetage 20wherename 张杰 2 PreparedStatementPreparedStatement对象实现预编译方式执行SQL语句 由于Statement对象在每次执行SQL语句时都将该语句传给数据库 如果需要多次执行同一条SQL语句 就将导致执行效率特别低 此时可以采用PreparedStatement对象来封装SQL语句 Prepared对象可以将SQL语句传给数据库作预编译 以提高执行速度 另外 PreparedStatement对象允许执行参数化的查询 可以用不同的输入参数来多次执行编译过的语句 1 创建PreparedStatement对象 PreparedStatmentpstmt con prepareStatement Select from学生信息表 2 执行查询语句 ResultSetrs pstmt exectueQuery 该条语句可以多次被执行 3 CallableStatementCallableStatement对象主要用于执行数据库中的存储过程 存储过程是数据库已经存在的SQL查询语句 执行存储过程的结果同执行相应的SQL语句是一样的 1 创建CallableStatement对象 一般格式为 callprocedurename 是不带输入参数的存储过程 其中procedurename是存储过程的名称 带输入参数的存储过程为 callprocedurename 而带输入参数并有返回结果参数的存储过程为 callprocedurename 例如 CallableStatementcstmt con prepareCall callQuery1 2 执行存储过程 CallableStatement类是PreparedStatement类的子类 可以使用在PreparedStatement类及Statement类中的方法 因此执行存储过程可调用executeQuery 方法来实现 如 ResultSetrs cstmt executeQuery 4 ResultSet执行完毕SQL语句后 将返回一个ResultSet类的对象 它包含所有的查询结果 也就是将查询结果封装在ResultSet对象中 ResultSet实际上是一张表示数据库结果集的数据表 通常通过执行查询数据库的语句生成 ResultSet类的对象方式依赖于光标 Cursor 的类型 对Resultset对象的处理必须逐步进行 而对每一行中的各个列可以按任何顺序进行处理 ResultSet对象具有指向其当前数据行的光标 最初 光标被置于第一行之前 next 方法将光标移动到下一行 因为该方法在ResultSet对象没有下一行时返回false 所以可以在while循环中使用它来迭代结果集 ResultSet对象通过getXXX 方法来获得某一列的数据 这里XXX代表列的数据类型 如getInt getString getDate 等 其中getXXX intcn 中cn指结果集中的列号 getXXX StringcolName 中colName代表列名 例如 Statementstmt con creatStatement ResultSetrs stmt executeQuery Select from学生信息表 while rs next Stringname rs getString student name 5 查询数据库示例以下是通过JDBC连接SQLServer2000数据库进行数据库查询的示例 首先创建Statement对象 接着执行SQL语句 查询表dept info中的信息 然后返回一个ResultSet类的对象 包含查询到dept info表中deptno和deptname的数据 其中数据库library中dept info表的数据如图11 4所示 图11 4dept info表 查询数据库中的数据首先要建立和数据库的连接 本例采用本地协议纯Java驱动程序 不需要数据源的设置 建立和数据库的连接步骤如下 1 下载SQLSever2000的驱动程序包 这个可以从微软的网站上下载 http 3 0 f 30ff65d3 a84b 4b8a a570 27366b2271d8 setup exe 默认安装路径为c ProgramFiles MicrosoftSQLServer2000DriverforJDBC 其中lib目录下的三个 jar文件即是JDBC驱动核心 即msbase jar mssqlserver jar msutil jar 2 设置环境变量 将三个 jar文件加入到环境变量中 此处安装驱动程序后将lib路径设为 D SQLServer2000 lib 环境变量设置如下 classpath D SQLServer2000 lib mssqlserver jar D SQLServer2000 lib msbase jar D SQLServer2000 lib msutil jar 3 装载驱动程序并建立连接 Class forName com microsoft jdbc sqlserver SQLServerDriver 声明数据库驱动Stringdriver jdbc microsoft sqlserver localhost 1433 Connectionconn DriverManager getConnection driver 建立数据库连接查询数据库具体代码如下所述 示例11 1 TestJDBC java importjava sql publicclassTestJDBC publicstaticvoidmain String args ResultSetrs null Statementstmt null Connectionconn null try Class forName com microsoft jdbc sqlserver SQLServerDriver Stringdriver jdbc microsoft sqlserver localhost 1433 DatabaseName library conn DriverManager getConnection driver sa 123 stmt conn createStatement rs stmt executeQuery select fromdept info while rs next System out print rs getInt deptno System out println rs getString deptname catch ClassNotFoundExceptione e printStackTrace catch SQLExceptione e printStackTrace finally try if rs null rs close rs null if stmt null stmt close stmt null if conn null conn close conn null catch SQLExceptione e printStackTrace 程序运行结果 1光电工程学院2材料化工学院3电子工程学院4经济管理学院5计算机科学工程学院6人文社科学院 11 4 3更新数据库操作和数据库建立连接后 除了要实现对数据库的查询操作外 在很多实际应用中 经常要实现对数据库的更新操作 主要包括对数据库表中的记录进行修改 插入和删除操作 以及数据库中表的创建和删除等操作 并通过Statement对象调用方法 以下是通过JDBC连接SQLServer2000数据库的更新操作 1 对数据库进行修改 插入和删除操作通过SQL语句对数据库中表的记录进行修改 插入和删除操作 其中executeUpdate 方法的输入参数仍然为一个String对象 即所要执行的SQL语句 但输出参数不是ResultSet对象 而是一个整数 它代表操作所影响的记录行数 1 修改操作 下列语句将学生信息表中张甜的年龄字段值修改为22 Statementstmt conn createStatement Stringsql updateStudent infosetage 22wherename 张甜 stmt executeUpdate sql 2 插入操作 下列语句将给学生信息表中增加一条新记录 王红 20 陕西 Statementstmt conn createStatement Stringsql insertintoStudent infovalues 王红 20 陕西 stmt executeUpdate sql 3 删除操作 下列语句删除了学生信息表中李明的记录 Statementstmt conn createStatement Stringsql deletefromStudent infowherename 李明 stmt executeUpdate sql 2 创建和删除表通过SQL的CreateTable和DropTable语句可实现对表的创建和删除 1 创建表的语句如下 Statementstmt con createStatement stmt executeUpdate createtableTableName IDINTEGER NameVARCHAR 20 2 删除表的语句如下 Statementstmt con createStatement stmt executeUpdate DropTableName 3 增加和删除表中的列对一个表的列进行更新操作主要是使用SQL的AlterTable语句 需要注意的是对列所进行的更新操作会影响到表中的所有行 1 增加表中的一列 在TableName表中增加一列Address 数据类型为字符串 Statementstmt con createStatement stmt executeUpdate AlterTableTableNameaddColumnAddressVarchar 50 2 删除表中的一列 在TableName表中删除一列Address Statementstmt con createStatement stmt executeUpdate AlterTableTableNameDropColumnAddress 11 4 4事务通过Statement对象除了对数据库进行SQL的操作之外 事务控制也是一种主要的应用 事务控制在建立数据库驱动应用程序的时候是一个很重要的问题 在数据库中 事务是指一组逻辑操作单元 使数据从一种状态变换到另一种状态 在JDBC的数据库操作中 一项事务是由一条或是多条表达式组成的一个不可分隔的工作单元 通过提交commit 或是回退rollback 来结束事务的操作 也就是当调用方法commit或rollback时 当前事务即结束 而另一个事务随即开始 关于事务操作的方法都位于接口java sql Connection中 在JDBC中 事务操作默认是自动提交的 一条对数据库的更新表达式代表一项事务操作 成功后 系统将自动调用commit 来提交 否则 将调用rollback 来回退 其中 方法commit使SQL语句对数据库所做的任何更改成为永久性的 它还将释放事务持有的全部锁 而方法rollback将弃去那些更改 有时用户在另一个更改生效前不想让此更改生效 这可通过调用setAutoCommit false 禁用自动提交并将两个更新组合在一个事务中来达到 如果两个更新都是成功的 则调用commit 方法 从而使两个更新结果成为永久性的 如果其中之一或两个更新都失败了 就不会执行到commit 并将产生一些异常 整个事务就要全部视为错误 这时则可以在捕获异常时调用rollback 进行回退 而全部从起始点后开始的操作应全部回到开始状态 大多数JDBC驱动程序都支持事务 事实上 符合JDBC的驱动程序必须支持事务 其中DatabaseMetaData给出的信息描述了DBMS所提供的事务支持水平 11 5JDBC综合应用示例本节以一个简单的图书借阅系统中对图书信息的操作为例 讲解JDBC在数据库连接中的应用 包括详细的数据源设置以及实现对图书信息的增加 删除 修改和查询的操作 本例的数据库采用SQLServer2000 对数据库的访问采用便于理解的JDBC ODBC方式 11 5 1建立数据库首先在SQLServer2000数据库中建立数据库library 并在数据库library中创建book info表 也可以在与数据库library建立连接后通过SQL语句创建book info表 如下 Statementstmt con createStatement Stringquery createtablebook info BookIdVARCHAR 50 BookNameVARCHAR 50 Author VARCHAR 50 AmountINT 4 stmt executeUpdate query 其中数据库表book info的数据库结构如表11 2所示 初始的book info数据表如图11 5所示 表中已有两条图书信息 图11 5初始的book info数据表 11 5 2建立数据源为了同上一节中建立的数据库建立连接 需要配置一个ODBC数据源try 步骤如下 步骤一 在开始 设置 控制面版 Win98 NT4 0 中选取 数据源 ODBC 在WindowsXP中 数据源 ODBC 位于 开始 设置 控制面版 管理工具 或 开始 程序 管理工具 下 步骤二 启动 数据源 ODBC 配置程序 界面如图11 6所示 图11 6ODBC数据源管理界面 步骤三 在图11 6中 用户DSN 选项下单击 添加 按钮 添加一个系统的数据源 DSN 则出现如图11 7所示创建新数据源界面 步骤四 在图11 7中选择 SQLServer 单击 完成 则出现如图11 8 图11 10所示创建到SQLServer的新数据源的对话框 并按此向导填写内容 点击 下一步 选择使用网络登录ID的WindowsNT验证 接着点击 下一步 并更改默认的数据库为library 图11 7创建新数据源界面 图11 8创建到SQLServer的新数据源 一 图11 9创建到SQLServer的新数据源 二 图11 10创建到SQLServer的新数据源 三 步骤五 再点击 下一步 默认当前设置 点击 完成 出现ODBCMicrosoft对话框 点击 测试数据源 出现测试结果界面 如图11 11所示 以上步骤就完成了对数据源的设置 图11 11SQLServerODBC数据源测试界面 11 5 3数据库操作程序本书采用JDK1 5 0作为开发工具 使用Eclipse3 2集成开发环境 首先在Eclipse中File菜单中新建一个Project工程 选择Java文件夹下的JavaProject选项 并点击下一步 出现如图11 12所示的对话框 新建jdbc工程名 最后点击完成 这样 jdbc 这个工程就建立好了 接着按照图11 13把SQLServer驱动程序添加到工程中 找到驱动程序存放的路径就可以完成这个操作 图11 12创建JavaProject 图11 13添加驱动程序 其次就是代码的编写 右键点击工程名jdbc 新建一个dbconnect类 示例11 2 dbconnect java importjava sql publicclassdbconnect publicstaticvoidmain Stringargs StringdbDriver sun jdbc odbc JdbcOdbcDriver 声明数据库驱动Stringdriver jdbc odbc library 声明数据源Connectioncon null Stringquery select frombook info ResultSetrs null Statementstmt null try 加载SQLServer的jdbc驱动Class forName dbDriver catch java lang ClassNotFoundExceptione System err println ClassNotFoundException e getMessage try 建立数据库连接con DriverManager getConnection driver sa 123 将数据库连接设置为自动提交模式con setAutoCommit true stmt con createStatement 执行insertinto语句 增加两条图书信息stmt executeUpdate insertintobook info BookId BookName values 200803 英语口语技能 stmt executeUpdate insertintobook info BookId BookName values 200804 JSP入门 queryBooks con stmt query 执行一个update语句 更新数据库 修改200803图书编号的书名stmt executeUpdate updatebook infosetBookName 基础英语口语技能 whereBookId 003 queryBooks con stmt query 执行一个delete语句 删除一条图书信息stmt executeUpdate deletefrombook infowhereBookId 200804 queryBooks con stmt query stmt close con close 上面的语句关闭声明和连接 catch SQLExceptionex System err println SQLException ex getMessage privatestaticvoidqueryBooks Connectioncon Statementstmt Stringquery try 返回一个结果集ResultSetrs stmt executeQuery query 下面的语句使用了一个while循环 打印出了book info表中的所有数据System out println book info表中的数据如下 System out println 图书编号 书名 while rs next 取得数据库中的数据Strings rs getString BookId Stringf rs getString BookName System out println s f rs close catch SQLExceptionex System err println SQLException ex getMessage 代码编写完成后 点击Run菜单栏 在Console中显示结果 如图11 14所示 在图书借阅系统中 dbconnect java程序通过JDBC实现了对图书信息进行增加 修改 删除的操作 同时SQLServer数据库library中的book info表的数据同步改变 如图11 15 图11 17所示 图11 14Eclipse操作界面 图11 15数据库Library中book info表 一 图11 16数据库Library中book info表 二 图11 17数据库library中book info表 三 本章小结JDBC是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口 有了JDBC Java程序员可以用Java语言来编写完整的数据库方面的应用程序 另外也可以操作保存在多种不同的数据库管理系统中的数据 而与数据库管理系统中数据存储的格式无关 本章简单介绍了Java与数据库连接的JDBC技术 首先对JDBC的功能和结构进行了概述 其次介绍了四种类型的JDBC驱动程序以及按照JDBC编程步骤实现JDBC在数据库访问中的应用 最后通过一个具体实例讲解了JDBC在数据库连接中的实际应用 习题1 简述JDBC驱动程序的四种类型 2 有哪些方法可以发送访问 操作数据库的SQL语句 如何处理对数据库访问操作的结果 如何获得关于数据库的信息 3 编写一个数据库程序 实现对学生成绩的查询 修改 删除功能 4 建立一个Book mdb数据库 该数据库包含4个表 Authors Publishers AuthorISBN和Title 各表描述如表11 3 表11 6所示 1 编写程序建立数据库 并录入相关数据 2 编写程序将Title表的全部数据输出 3 编写程序 查询姓张的作者出版的所有书籍的详细信息 4 编写程序 在表AuthorISBN中插入2条新记录 5 编写程序 删除1997年出版的所有书籍
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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