《MyBatis课程讲义》V2.0
作者:王伟2016年6月
邮件:ahler@https://www.wendangku.net/doc/727086311.html,
QQ群:391244052
本文档版权归作者所有,并保留一切权利。未经书面许可,任何公司和个人不得将此文档中的任何部用于商业用途,否则,必将追究其法律责任。
2.0版说明:
●保持1.0版以任务驱动的特点
●MyBatis版本从3.2升级到3.3
●修订了第一章中相关案例的数据库定义
●修订案例,减少案例对其他框架技术的依赖,便于学习
●章节或者小节前标示有“*”,说明该内容是可选的
●新增第4章,描述了MyBatis缓存相关内容
2.1版更新计划
●所有案例采用eclipse+maven开发,不再使用MyEclipse
●MyBatis版本更新到3.4系列
●充实第4章SQL优化案例
第1章MyBatis基础
1.1 MyBatis的诞生背景及其特点
MyBatis的前身是Apache的iBatis开源项目,2010年更名为MyBatis,并从ASF(Apache Software Fundation)迁移到了Google Code。2013年,源代码又托管到了GitHub。在MyBatis诞生之前,Hibernate已经取得了业界的认可,几乎是Java 领域数据库持久化的事实标准。但随着互联网应用的发展,特别是在Web2.0之后,在应用中用户的高度参与性导致互联网应用的数据量急剧增加,典型的应用就是电子商务站点,社交网络等。Hibernate的高度面向对象的封装特性使得其面对大数据开始力不从心。
SQL诞生至今已经超过40年了,在这期间,企业在关系数据库上的投资已经无法估算,有无数的信息系统建立在关系型数据库系统之上,而且这些系统(包括关系型数据库)在未来很长一段时间内将依然存在而且承担关键作用。
在上述关键因素的背景下MyBatis应运而生。MyBatis框架认为,关系型数据库和SQL技术是非常有价值的,有许多的开发团队在SQL上有优秀的技术沉淀,不应该丢弃SQL,尽管SQL存在一些缺点。
MyBatis让开发者可以继续使用SQL,但没有JDBC编程的复杂性,还提供了诸多基础服务以保障效率。总而言之,MyBatis具有以下一些特点,
◆简单易用
◆性能高效
◆保留SQL
◆开源框架
1.2 MyBatis的使用场景
◆当开发团队对数据库设计没有控制权时,例如遗留数据库
◆当应用系统数据分散到多个数据库时
◆当数据库设计没有按照规范化设计时
◆当数据访问效率要求较高时
1.3 MyBatis和Hibernate的区别
◆Hibernate是完全的ORM框架,是实体与关系表的映射,而MyBatis是SQL执
行结果和实体的映射
◆Hibernate解决了面向对象与关系数据库的阻抗问题,例如关系数据库没有继
承,关系数据库只有单向关联等。MyBatis不打算去解决这些问题,保持封装的简洁,以便提高应用执行效率。
1.4 搭建MyBatis开发环境
在本节中,通过实现一个业务功能来演示MyBatis开发环境的搭建。假设某互联网应用需要统计会员总数的功能,采用MyBatis实现。
【准备工作】
事先准备MyEclipse 10.7、Oracle 11gR2数据库、MyBatis-3.3库、Oracle JDBC 驱动库。
MyBatis的前身是iBatis,iBatis发展到3系列时更名为MyBatis。iBatis2系列的最后一个维护版本(iBatis-2.3.5)可以从网址https://https://www.wendangku.net/doc/727086311.html,/mybatis/ibatis-2/处下载。感兴趣的同学可以自行学习,因为还有一些iBatis2的遗留项目需要维护。
MyBatis3可以从https://https://www.wendangku.net/doc/727086311.html,/mybatis/mybatis-3网址下载,本课程使用MyBatis-3.3.1版本。
创建Web Project,如图1.4.1所示。图中显示了需要用到的其他库文件。
图1.4.1 具有MyBatis库的项目结构
【案例实现】
步骤1,以SCOTT模式登录Oracle数据库,新建会员表(T_BIZ_MEMBERS)并添加测试数据,SQL脚本如代码1.4.1所示。
CREATE TABLE T_BIZ_MEMBERS (
UCODE VARCHAR2(32) DEFAULT SYS_GUID() NOT NULL , -- 会员编号
NICK_NAME VARCHAR2(40) NOT NULL , -- 昵称
REAL_NAME VARCHAR2(100) NULL , -- 真实姓名
EMAIL VARCHAR2(200) NULL , -- 电子邮件
CDATE DATE NULL , -- 创建日期
LDATE DATE NULL , -- 最近修改日期
PRIMARY KEY (UCODE) -- 主键
);
INSERT INTO T_BIZ_MEMBERS (UCODE,NICK_NAME,REAL_NAME)
VALUES(SYS_GUID(),'TOM','无敌风火轮');
INSERT INTO T_BIZ_MEMBERS (UCODE,NICK_NAME,REAL_NAME)
VALUES(SYS_GUID(),'JERRY','芭蕉扇公主');
INSERT INTO T_BIZ_MEMBERS (UCODE,NICK_NAME,REAL_NAME)
VALUES(SYS_GUID(),'JACK','通天金箍棒');
COMMIT;
代码1.4.1 会员表SQL脚本
步骤2,在项目源代码目录src中新建mybatis-config.xml配置文件,内容如代码1.4.2所示。需要根据自己Oracle实例名称修改URL部分。
PUBLIC "-//https://www.wendangku.net/doc/727086311.html,//DTD Config 3.0//EN"
"https://www.wendangku.net/doc/727086311.html,/dtd/mybatis-3-config.dtd">
value="jdbc:oracle:thin:@localhost:1521:orcl" /> 代码1.4.2 mybatis-config.xml配置文件内容 步骤3,新建包com.ysdit.mybatis3.dao,并在其中新建IMemberMapper接口,如代码1.4.3所示。 package com.ysdit.mybatis3.dao; public interface IMemberMapper { public int countAll(); } 代码1.4.3 IMemberMapper接口代码 步骤4,在com.ysdit.mybatis3.dao包中新建映射文件IMemberMapper.xml,内容如代码1.4.4所示。 PUBLIC "-//https://www.wendangku.net/doc/727086311.html,//DTD Mapper 3.0//EN" "https://www.wendangku.net/doc/727086311.html,/dtd/mybatis-3-mapper.dtd"> select count(*) from t_biz_members 代码1.4.4 IMemberMapper.xml接口映射文件 步骤5,新建测试类MemberMapperTest,如代码1.4.5所示。 /*省略package和import代码*/ public class MemberMapperTest{ public static void main(String[] args) { String configFile = "mybatis-config.xml"; InputStream in = null; SqlSessionFactory sessionFactory = null; SqlSession session = null; try { SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); in = Resources.getResourceAsStream(configFile); sessionFactory = builder.build(in); session = sessionFactory.openSession(); IMemberDao memberDao = session.getMapper(IMemberDao.class); int totalMembers = memberDao.countAll(); System.out.println ("会员总数:" + totalMembers); } catch (Exception e) { e.printStackTrace(); }finally{ session.close(); } } } 代码1.4.5 MemberMapperTest测试代码 步骤6,执行MemberMapperTest测试类,如果得到输出结果“会员总数:3”,说明整个MyBatis开发环境搭建成功了。 简单来说,MyBatis执行原理图1.4.2所示。SqlSessionFactoryBuilder会读取配置文件,SqlSession会根据映射文件信息来操作数据库。 图1.4.2 MyBatis执行原理图 1.5 配置事务管理器和数据源 在实际的项目开发中,数据操作是离不开事务的,否则数据的完整性和一致性都无法得到保证。因此,任何一款数据访问产品都需要提供事务管理的功能。MyBatis的事务管理策略分为JDBC和MANAGED两种。 数据库连接是属于稀缺资源,在计算机软件设计领域中,稀缺资源很多时候都会使用池化技术来进行有效管理,从而提高资源的使用效率。数据源即是数据库连接池,用来提高数据库连接的使用效率。在Java开发领域中,有许多成熟的数据源开源产品,例如ASF的DBCP、阿里巴巴的Druid等。作为数据访问产品,MyBatis提供了灵活的数据源类型。 MyBatis框架通过mybatis-config.xml框架配置文件,能够对数据源和事务管理进行配置。 【准备工作】 MyBatis关于事务管理和数据源的配置如代码1.5.1加粗部分所示。 value="jdbc:oracle:thin:@localhost:1521:orcl" /> 代码1.5.1配置数据源 【工作原理】 transactionManager的类型有JDBC、MANAGED两种。 对于应用系统中只有一个数据源(数据库)来说,事务管理器可以采用JDBC 类型,事务管理交由数据库自身来处理。如果应用系统涉及多个数据源,例如在互联网系统中,往往存在数据库集群的情况,那么事务管理器类型应该取MANAGED 类型,此时事务交由中间件服务器来调度处理。 ◆dataSource的类型有UNPOOLED、POOLED、JNDI三种。 数据源的核心是数据库连接池,数据库连接对象池化的目的是提高系统效率。 连接池能够对属于稀缺资源的数据库连接进行统一管理,包括对连接对象的初始化、新增、释放等操作。 UNPOOLED类型说明数据库连接对象不采用池化技术,每次数据库会话操作都需要新建和关闭数据库连接,实际应用中不采用这种方式。UNPOOLED是工厂类org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory的别名。 POOLED类型则是采用数据库连接池,MyBatis框架自身提供了一个数据源实现。如果需要替换成其他数据源产品,可以通过改变 JNDI类型指的是,数据库连接池不由MyBatis来控制管理,交给中间件服务器(例如Tomcat)来管理。MyBatis通过JNDI名字从中间件服务器中获得数据库连接对象。JNDI是工厂类org.apache.ibatis.datasource.jndi.JndiDataSourceFactory的别名。 【扩展描述】 当dataSource的类型是POOLED时,还额外有以下常用属性。 poolMaximumActiveConnections,连接池最大活动连接数,默认值10 poolMaximumIdleConnections,连接池最大闲置连接数 poolMaximumCheckoutTime,连接“离开”连接池的最大时间,默认20秒 1.6 映射文件的结构 在mybatis-config.xml配置文件中,主要是对整个MyBatis框架的环境设置,比如上一节讲的事务管理器和数据源,另外后面要学到的延迟加载、类型别名等等。对SQL语句执行结果和实体数据的映射关系是单独的映射文件来配置的。映射文件宏观结构如代码1.6.1所示。 select count(*) from emp; 代码1.6.1 接口映射文件结构 【工作原理】 映射文件中,根元素是 MyBatis框架的核心功能就在于SQL语句的映射。一个典型的SQL映射语句如下图1.6.1所示。 图1.6.1 SQL语句结构图 SQL映射语句的输入一般存在WHERE子句的条件中,用#{}符号表示,实际上就是一个占位符。语句输出一般是SELECT子句。映射语句并不是必须有输入和输出部分。如果SELECT语句不带WHERE子句的话,就是没有输入。如果语句是更新类型的,一般都没有输出部分。 为了区分SQL语句的语义,MyBatis提供了 1.7 简单的查询语句 互联网新闻性质的网站有很多,本节以某新闻网为例,介绍如何通过MyBatis 实现新闻的相关查询操作。 ◆查询分享次数最多的新闻 ◆查询某天的所有头条新闻 【准备工作】 步骤1,以SCOTT模式登录Oracle数据库,新建新闻表(T_BIZ_NEWS)并添加测试数据,SQL脚本如代码1.7.1所示。 CREATE TABLE T_BIZ_NEWS ( NCODE VARCHAR2(32) DEFAULT SYS_GUID() NOT NULL,-- 新闻编号 TITLE VARCHAR2(100) NOT NULL,-- 新闻标题 STITLE VARCHAR2(100),-- 新闻副标题 PDATE DATE,-- 新闻发布日期 NURL VARCHAR2(255),-- 新闻地址 SURL VARCHAR2(255),-- 新闻来源地址 IS_TOP CHAR(1),-- 是否是头条新闻 TOP_ODR NUMBER(2),-- 头条次序 NCOL VARCHAR2(50),-- 新闻所示板块 CCODE VARCHAR2(38),-- 板块编码 CNT NUMBER(9),-- 新闻点击量 SCNT NUMBER(9),-- 新闻被分享数量 PRIMARY KEY(NCODE) -- 主键 ); 代码1.7.1 新闻表SQL脚本 创建好表之后,测试数据自行添加。 【案例实现】 步骤2,新建web项目news,在com.ysdit.news.entity包中新建实体类News,代码代码1.7.2所示。 package com.ysdit.news.entity; public class News { private String ncode; // 新闻编号 private String title; // 新闻标题 private String stitle; // 新闻副标题 private Date pdate; // 发布日期 private String nurl; // 新闻网址 PDM的主要功能 PDM是为企业提供了一种宏观管理和控制所有与产品相关信息以及与产品相关过程的机制和技术。PDM系统包含多项功能,从面向应用与系统支持的功能来看,一般包括电子仓库(又称电子数据存储、电子保险箱、电子资料室)、面向应用的使用功能(如文档控制、变更控制、配置管理、设计检索与零件库、项目管理等)、实用化支持功能(如通知与通信、数据传输与转换、图像服务与系统管理),其功能结构如图3所示。 图3.PDM系统的主要功能(面向应用与系统支持) 从软件功能模块的组成来看,一般包括电子数据存储和文档管理、工作流程管理、产品结构及配置管理、分类与检索管理、项目管理、集成接口、用户化工具等,其功能结构如图4所示。 图4.PDM系统的功能(面向软件功能模块的组成) 2.2.1项目管理功能 项目管理的定义:为了在确定的时间内完成既定的项目,通过一定的方式合理地组织有关人员,并有效地管理项目中所有资源(人员、设备等)与数据,控制项目进度的系统管理方法,项目管理所涉及的信息最多,范围最广,实现起来也最复杂。 项目管理是面向过程的一种管理模式,它强调对项目的全过程(包括立项、计划、执行、控制和收尾等)进行全方位管理,其静态领域涉及范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理九个知识体系。 与目标管理不同,项目本身具有不可重复性并包含许多不确定因索,这就使得管理者和任务承担者很难就项目达成双方一致的目标。由于项目管理贯穿于项目的整个生命周期,而且围绕项目将企业不同职能部门的成员组成一个有机的整体,项目管理者既是这个团队的领导者,又是项目的执行者,对整个项目及其过程负责,准时、优质地完成全部工作,实现项目的目标。因此,项目管理可以避免目标管理特别是以人工为主的管理模式的弊端,有助于企业处理项目实施过程中需要跨领域解决的复杂问题,能有效地提升企业的运营效率。 PDM系统的项目管理功能是为完成对项目进行管理的任务而设蜀的,进行项目管理,需要定制项目模型,在项目模型中对项目的任务、人员和时间安排进行描述。利用文档管理功能对项目的所有文档和数据进行管理;利用用户管理功能组织项目组,安排项目组成员在 Excel模版创建pdm 一、将数据字典中的数据表结构粘贴到Excel文件中,整理成如下图所示格式 二、在powerdesigner中创建PDM工程,选中该工程,然后打开脚本代码窗口:Tools -Execute Commands -Edit\Run Script ,编写代码脚本。 三、脚本代码 Dim mdl ' the current model Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "没有活动的模版" End If Dim HaveExcel Dim RQ RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation") If RQ = vbYes Then HaveExcel = True ' Open & Create Excel Document Dim x1 ' Set x1 = CreateObject("Excel.Application") x1.Workbooks.Open "C:\Users\Administrator\Desktop\Book1.xls" '指定excel文档路径 Else HaveExcel = False End If a x1, mdl sub a(x1, mdl) dim rwIndex dim tableName dim colname dim table dim col dim count on error Resume Next set table = mdl.Tables.CreateNew '创建一个表实体 https://www.wendangku.net/doc/727086311.html, = "国家信息表" '指定表名,如果在Excel文档里有,也可以.Cells(rwIndex, 3).Value 这样指定 table.Code = "LU_STATUS" '指定表名编码 count = count + 1 For rwIndex = 2 To 1000 '指定要遍历的Excel行标,此处第一列为列名,古从第二行开始循环 With x1.Workbooks(1).Worksheets("sheet1")'需要循环的sheet名称 If .Cells(rwIndex, 1).Value = "" Then Exit For End If 1 PDM的常见功能介绍 到目前为止,还没有一个商用PDM软件拥有全部可罗列的PDM功能,其中有的功能构件还有待于进一步发展和完善。 但是,一般PDM系统都包括文档管理、产品配置管理及工作流程管理等最基本的功能,能对产品的整个生命周期进行完整的描述和控制,因此,PDM在企业中的作用已经普遍为大家所认同。 1.1 电子仓库 1.1.1 电子仓库介绍 在企业中,大量与产品相关的数据往往分布在多部门,甚至是多区域中,而且这些数据的格式也是多样的,如文本文件、数据库、图纸文件等,对这些数据的查询、浏览、共享,以及结合工作流程来管理这些数据等,都是企业在进行信息集成时经常遇到的问题。 PDM管理的主要对象是产品的“元数据”,即有关产品信息的信息,其实现基础是电子仓库(Electronic Data Vault)。实施并行工程所需要的“在正确的时间、把正确的数据、按正确的方式、传递给正确的人”对PDM数据管理提出了更高的要求。 电子仓库(Data Vault)是PDM最基本的功能,也是PDM的核心,通常是建立在通用的关系数据库基础上,主要保证数据的安全性和完整性,并支持各种查询和检索功能。 PDM系统中的电子仓库用以取代人工方式的纸质档案管理,使用户方便、快捷、安全地存取、维护及处理各种有关产品的文档,如从设计阶段产生的AutoCAD图纸的数据文件、3D实体造型的数据文件、CAE的分析报告,到制造阶段可能产生的变更单等,都是电子仓库管理的对象。 电子仓库为用户和应用之间的数据传递提供一种安全的手段,其透明性可使用户无需考虑分布式环境下各种数据的实际物理存放位置,允许用户迅速地、集中地处理访问全企业的产品信息,并且使整个企业的各部门共享产品数据。 PDM的电子仓库和文档管理提供了对分布式异构数据生成,存储,查询,控制存取,恢复,编辑,电子检查和记录,电子对象的历史及通用文件管理等能力。 在PDM中,数据的访问对用户来说是完全透明的,用户无需了解应用软件的运行路径、安装版本以及文档的物理位置,以及自己得到的是否是最新版本等信息,所有描述产品、部件或零件的数据都由PDM统一管理,自动集中修改。 PDM系统通过建立在数据库之上的相关联指针,建立不同类型的或异构的产品数据之 制造业PDM实例分析 摘要:PDM项目在上海机床厂合作比较顺利,所涉及的技术路线除与ERP集成工作未结束外,各技术路线、应用子系统已经在上海机床厂磨研所、上依公司得到推广与应用,对同行业具有示范作用。江苏申菱电器制造有限公司制定了以下一套CAD/CAPP/PDM的一体化解决方案,不仅大大的提高了设计人员的工作效率,又有效的实现了数据的一致性和规范性。 关键词:PDM ;上海机床厂;江苏申菱电器制造公司 1 引言 企业如何管理大量电子化数据并从中迅速查找、访问到所需的信息,是企业要解决的一个重要问题。产品数据管理( ProductDataManagement, PDM)的出现为此提供了一种可靠的途径。 1.1 PDM的基本概念 PDM技术最早出现在20 世纪80 年代。其初衷是为了解决大量工程图样文档的管理问题,然后逐渐扩展到产品开发过程的三个领域: 1)设计图样和电子文档的管理; 2)自动化工程更改单的管理;3)材料清单(BOM)的管理。 PDM是以软件技术为基础,以产品为核心,实现对产品相关的数据、过程、资源一体化集成管理的技术。PDM明确定位为面向制造企业,以产品为管理的核心,以数据、过程和资源为管理信息的三大要素。 PDM进行信息管理的两条主线是静态的产品结构和动态的产品设计流程,所有的信息组织和资源管理都是围绕产品设计展开的,这也是PDM系统有别于其他的信息管理系统,如管理信息系统(M IS) 、物料管理系统(MRP) 、项目管理系统( ProjectManagement)的关键所在。PDM系统中数据、过程、资源和产品之间的关系如图。 1.2 PDM系统的体系结构 PDM系统是一个管理软件系统,面向产品全生命周期,以产品为核心,将产品设计开发过程中的产品数据、设计活动、人员组织以及相关的设计环境统一组织起来。 PDM系统的体系结构如图2所示。 一、模版修改 在导出表时,powerdesigner默认为我们提供了很多的模版,在工具栏中选择 【Report--->Report Template】即可看到所有的默认模版。如图一: 点击close 图一模版列表 这里我们为了导出powerdesigner中创建的表,在工具栏中选择【Report--->Reports】(快捷键Ctrl+E), 然后创建一个New Report,如下图二所以,选择Standard Physical Report,这里选择的标准的模版,点击OK确定。 图二创建新的Report 从工具栏【Report--->Print Preview】或者点击图标同样可以预览导出到word的效果了。效果 如图三所示: 图三导出到word中预览效果 从【图三】中的工具栏里面HTM和RTF两种导出格式。如果导出到word选择RTF格式即可,但是我们从【图三】中看出红色标出的部分,1 是word的页眉,同样还有页脚信息,2 是一些列的属性清单。 图四设置页眉、页脚 在【图四】中,选择Header/Footer后,删掉Header里面的%MODULE% %MODELNAME%,删掉Footer里面的%APPNAME% %DATE% 页数%PAGE%,User_defined footer就会自动勾上,这样就去掉了页眉、页脚了 还有其他的比如表前面的自增序号,第一页中的创建者、版本、日期信息也不需要,我们可以进行配置去掉,如下【图五】【图六】 图四 图五 Properties配置 在图五中,在默认配置中(General)勾上No paragraph numbering即可取消表前面的自增序号,在Title Page中选择No Title Page就不会生成第一页中关于创建者、版本、日期等信息。 在【图三】中,预览看到的内容太多,就必须删除一些我们不需要的内容,经过删减之后,如下【图六】 所示 图六 在【图六】中右键单击【List of Table Columns - 表<%PARENT%>列说明】,从菜单中选择Edit Title...,就可以编辑成现在我们已看到的。然后,在右键菜单中选择Layout...,选择我们所需要显示的内容,Code 表示列名称,一般用英文单词或拼音字母表示,Name一般用中文描述,Data Type 表示数据类型,Comment表示字段备注或字段说明等。 到此基本上已经完成了powerdesigner模版的修改 二、导出表 然后点击[Report---->Generate RTF]导出到word中,最后我们看看导出到word的效果,如下图: pdm生成数据库设计表结构 本文以Oracle为例: 一、pdm设计 1、pdm表设计 PowerDesigner不仅能自如的绘制UML模型图,更重要的是可以进行物理数据模型的设计,通俗的讲就是数据库的设计。 物理数据模型(Physical Data Model)简称PDM,提供了系统初始设计所需要的基础元素,以及相关元素之间的关系;数据库的物理设计阶段必须在此基础上进行详细的后台设计,包括数据库的存储过程、操作、触发、视图和索引表等。 PowerDesigner能够用于创建多种不同类型的DBMS(数据库管理系统),每种类型的DBMS都包含一个标准定义的文件用于在PD和DBMS中确定彼此的关联而提供一套接口; 创建不同的DBMS可以生成不同的数据库脚本;日常开发中,一般用PDM图生成.sql脚本,然后通过查询分析器(或其它数据库可视化管理软件)生成数据库表以及视图。 接下来,概要的了解PDM的主要功能: 首先,它可以将数据库的物理设计结果从一种数据库移植到另一种数据库;其次,它可以通过反向工程将已经存在的数据库物理结构重新生成物理模型或概念模型;此外,还可以定制生成标准的模型报告;当然,它也可以转换为OOM;主要的,它能完成多种数据库的详细物理设计(涵盖常用的各种数据库的DBMS),并生成数据库对象的.sql脚本。 一般来说,创建PDM有如下三种方式: ?直接创建新的PDM; ?使用模板创建新的PDM; ?通过现有基础创建新的PDM。 打开PowerDesigner,新建,即创建新的PDM(DBMS使用为Mysql)。 设置一下适应个人的PDM显示参数。 第一节PDM的概念 如果说60年代制造业企业战略目标追求的是生产规模的扩大,70年代是生产成本的降低,80年代是产品质量的提高,90年代的目标追求的则是市场响应速度,即缩短交货期。根据顾客的需求,迅速提供相应的产品成为企业竞争力最重要的构成因素。产品数据管理(PDM)一经问世,便迅速得到制造业企业的广泛关注,越来越多的企业在开始应用或者准备实施PDM。PDM在提高企业效率,提高企业竞争力方面的杰出表现,正获得越来越多企业的青睐。 单从字面上理解,PDM是Product Data Management(产品数据管理)的缩写,是指某一类软件的总称。CIMdata曾这样定义:“PDM是一种帮助工程师和其他人员管理产品数据和产品研发过程的工具。PDM系统确保跟踪设计、制造所需的大量数据和信息,并由此支持和维护产品”。如果说得再细致一点,我们可以这样理解PDM:从产品来看,PDM系统可帮助组织产品设计,完善产品结构修改,跟踪进展中的设计概念,及时方便地找出存档数据以及相关产品信息。从过程来看,PDM系统可协调组织整个产品生命周期内诸如设计审查、批准、变更、工作流优化以及产品发布等过程事件。简单的PDM(Product Data Management)可以定义为:以产品为中心,通过计算机网络和数据库技术,把企业生产过程中所有与产品相关的信息和过程集成起来进行管理的技术。 PDM将所有与产品相关的信息和所有与产品有关的过程集成在一起。与产品有关的信息包括任何属于产品的数据,如CAD/CAE/CAM的文件、物料清单(BOM)、产品配置、事务文件、产品订单、电子表格、生产成本、供应商状况等。与产品有关的过程包括任何有关的加工工序、加工指南和有关批准、使用权、安全、工作标准和方法、工作流程、机构关系等所有过程处理的程序。它包括了产品生命周期的各个方面,PDM 能使最新的数据为全部有关用户应用,包括工程设计人员,数控机床操作人员、财会人员及销售人员都能按要求方便地存取使用有关数据。 但是,这只是单纯从技术的角度给PDM下了-个的定义。真正意义上的PDM远不止如此。如果一定要探导PDM究竟是什么,我们可以这样来定义它:PDM是指企业内分布于各种系统和介质中,关于产品及产品数据信息和应用的集成与管理。产品数据管理集成了所有与产品相关的信息。企业的产品开发效益取决于有序和高效地设计、制造和发送产品。产品数据管理有助于达到这些目的。PDM是依托IT技术实现企业最优化管理的有效方法,是科学的管理框架与企业现实问题相结合的产物,是计算机技术与企业文化相结合的一种产品。产品数据管理是帮助企业、工程师和其他有关人员管理数据并支持产品开发过程的有力工具。产品数据管理系统保存和提供产品设计、制造所 实验七 PowerDesigner物理数据模型 一、背景知识 1.物理数据模型概念 在设计好数据库的逻辑结构之后,就需要完成其物理设计。物理数据模型(physical data model,PDM)就是以数据库管理系统(DBMS)理论为基础,根据概念模型建立的现实世界模型生成相应的数据库管理系统的SQL脚本语言。利用该SQL脚本在数据库中产生实现世界信息的存储结构(如表、约束等),并保证数据在数据库中的完整性和一致性。图3-1描述了物理数据模型与数据库管理系统的关系。 图3-1 PDM与DBMS的关系 PDM以PowerDesigner为各种数据库提供的数据定义文件作为与语法模板来生成SQL语言脚本。由PDM生成SQL脚本,在通过SQL脚本在数据库中建立相应的数据存储结构,称为正向工程;反之,如果通过数据库中已存在的数据存储结构来导出对应的PDM,则称为逆向工程。 二、实验目的 1.了解和熟悉PowerDesignerPDM及其相关知识。 2.掌握运用PowerDesignerPDM工具建立PDM的方法。 3.掌握对PowerDesignerPDM进行管理的内容和方法。 三、实验内容与步骤 创建物理数据模型过程 用户可以通过四种方式新建PDM: 1.使用设计环境直接建立PDM 2.从现有数据库或数据库SQL脚本逆向工程建立PDM 3.从CMD采用内部模型生成的方法建立PDM 4.根据面向对象模型(OOM)中的类图,采用逆向的内部生成方法建立PDM 在前面的实验中,我们已经了解了利用CDM生成PDM地方法,这样的方法符合常规,即先进行概要设计然后进行详细设计。在本实验中,我们主要练习使用PowerDesigner设计环境直接建立PDM的方法。 1.创建 PDM PDM系统的开发及应用 摘要应用网络、关系数据库、客户机/服务器及面向对象技术建立了PDM(产品数据管理)系统实现了产品数据信息的有序、正确、安全地管理,讨论了PDM的技术特点、创新之处、推广实施方式、技术路线及意义。 关键词产品数据管理PDM并行化环境材料明细表BOM技术特点 1PDM的国内外应用现状及趋势 PDM(Product Data Management产品数据管理)技术出现于20世纪80年代初期目的是为了解决大量的工程图纸、技术文档以及CAD文件的计算机管理问题。随着PDM技术的发展其已逐渐扩展到产品开发过程中的三个主要领域:设计图纸和电子文档的管理、材料明细表BOM(Bill of Material)的管理及与工程文档的集成工程变更请求/指令ECR/ECO(Engineering Change Request/Order)的跟踪与管理。 产品数据管理(PDM)以软件为基础是一门管理所有与产品相关的信息(包括电子文档、数字化文件、数据库记录等)和所有与产品相当的过程(包括工作流程和更改流程)的技术。PDM 提供产品全生命周期的信息管理,并可在企业范围内为产品设计与制造建立一个并行化(Concurrent)的协作环境。 PDM以产品数据为核心,实现静态的产品数据和动态的工作流程的安全、正确及高效的管理。所有的信息组织和资源管理都是围绕产品设计展开的,也是PDM系统有别于其他的信息管理系统,如企业信息管理系统(MIS)、制造资源计划(MRPI)、项目管理系统(PM)、企业资源计划(RP0)的关键所在。 对于制造企业而言,产品设计、原材料采购、零部件生产加工、装配、以及产品销售等各单元的计算机辅助技术已经日益成熟,但基本上自成体系,彼此之间缺少有效的信息共享和利用,所谓的“信息孤岛”随处可见。所以,实现产品数据信息的有序、正确、安全地管理将成为企业在激烈的市场竞争中保持不败的关键因素。 为此开发了自己的PDM系统,现介绍如下: 2系统和技术特点 2.1系统 PDM系统是基于客户机/服务器体系(Client/Server)的分布式网络数据库系统。服务器端采用Windows 2000 Advanced Server操作系统、SGL Server 2000数据库、PDM服务器端程序:客户端采用Windows 2000 Professional操作系统、PDM客户端程序。 PowerDesigner连接Oracle反向工程导出模型图 用PowerDesigner反向工程来导出数据模型图是很方便的,以PowerDesigner16.5和oracle11g 为例。 1.新建pdm文件 打开或新建一个PhysicalDataModel文件(.pdm) 2.选择数据库版本(选择数据源) 菜单项Database –>Configure Connections,(DBMS是ORACLE Version 11g 或者下拉列表中可以选择自己版本的数据库) 3.配置ODBC 3.1添加系统DSN 菜单项Database->Configure Data Connections,ODBCMachineData Sources->ODBC Administrator->选择系统DSN->添加->选择Microsoft ODBC for Oracle. 3.2测试连接 菜单项Database->Connect->选择第一项Machine data source选择刚才建好的数据源ora_pdm,在Login里输入UserID和Password,点击connect。没有任何提示就说明连接成功。(第3步无法配置,请跳过此步骤直接配置第4步.) 4.64位的Oracle采用jdbc方式连接(替代第3步) 菜单项Database->Configure Data Connections->Connection Profiles, 如果连接存在,选中就行,如果不存在,点击addDataSource数据库图标进行新增,弹出ConnectionProfileDefinition对话框,此对话框中需要输入以下信息: Connectionprofilename:输入数据库连接文件名,它会自动加上后缀名.dcp; Directory:数据库连接文件存放路径;可以任意; Connetctiontype:选择JDBC; DBMStype:数据库类型选择Oracle; Servername:服务器名称;也相当于对应PL/SQL登陆页面的数据库;(NetManager管理器可以看到服务器) Databasename: 数据库名字; Username:登陆数据库名字; (pdm产品数据管理)产品数据与工艺数据的结构化 集成 产品数据与工艺数据的结构化集成 ——529厂Avidm与TH-CAPP系统的紧密集成 郭静钟振宇 航天五院529厂 摘要:对于529厂现行的AVIDM和TH-CAPP系统,进行基于结构化数据底层的结构改造和功能开发,从而实现统一产品数据源,以AVIDM作为系统集成的平台,以TH-TH-CAPP作为工艺文件编制和工艺数据操作运行环境的最终目标。529厂Avidm与CAPP系统实现紧密集成,是对工艺规划文档进行有效的组织利用,是提高产品数据使用效率以及生产管理水平的关键因素,是影响企业信息化发展的重要环节。实现Avidm与TH-CAPP系统实现紧密集成的优势:从卫星制造产品数据管理的角度出发,工艺规划文档必须纳入AVIDM系统中统一管理,提高产品生产效率。工艺规划文档作为整个卫星组织生产和过程管理的指导文件,是529厂工程管理应用系统的数据源头。保证工艺规划文档数据一致性和实时共享是提高529厂生产管理水平和建设信息化企业的关键。 关键词AvidmTH-CAPP集成 1前言 当前我国在PDM与TH-CAPP集成领域的研究已经迅速开展。由于各系统是由不同的供应商提供,系统开发环境和运行环境都有很大差别。如果不对各系统进行改造,无法实现信息的互通和共享。 对于529厂现行的AVIDM和TH-CAPP系统,进行基于结构化数据底层的结构改造和功能开发,从而实现统一产品数据源,以AVIDM作为系统集成的平台,以TH-CAPP作为工艺文件编制和工艺数据操作运行环境的最终目标。集成采用开放式的集成方式,能够提供通用的产品数据及工艺数据输出接口及数据库格式,为集成或封装其它应用软件打下基础。 2背景介绍 PDM技术解决企业中产品信息的管理需求,为企业提供一个以产品数据库为核心的计算机集成环境,使各部门、工作组各成员之间可以共享技术信息,有效地支持协同工作、并行工程。AVIDM作为卫星制造产品数据管理系统,实现了从产品设计过程控制到工程图文档管理等全方位的解决方案。 TH-CAPP系统产生的工艺规划文档作为卫星组织生产和过程管理的指导文件,是制造产品数据管理过程中最重要的一类文档。因此,如何对工艺规划文档进行有效的组织利用,是提高产品数据使用效率以及生产管理水平的关键因素,是影响企业信息化发展的重要环节。 529厂实现Avidm与TH-CAPP系统实现紧密集成的必要性在于: PDM简易教程 一、个人工作台(略) 二、文档管理 文档管理模块是企业内部集成办公的平台。软件系统利用此模块,实现企业各个部门间的协同办公,文档按部门分类存储,文档数据的编辑、分享受系统权限的控制。该模块下分为3个子模块,文档工作区、文档废止区和文档发布区。 其中: 文档工作区:处于拟制和流程状态的图纸文档管理区域 文档废止区:处于废止,在系统中历史留存的图纸文档区域 文档发布区:受控的图纸文档正式发布显示的区域 以下是各类文档状态含义以及所在工作区: “文档管理模块”为企业各部门间的协同管理,提供了有效的支持。点击【文档管理】>【文档工作区】,在文档树视图中,用户可以建立不同部门的文件夹。通过权限的设置和管理,可以实现各个部门间文件信息的互通、共享,协同处理。 2.1、文档工作区 文档常用的组织管理类命令列表: 文档工作区界面 用户可以根据自己的需要创建自己需要的文件夹或者子文件夹。方法是点击一个已经存在的文件夹或者子文件夹,右键菜单【新建】>【文件夹】,在弹出的“文件夹属性”对话框中输入文件夹名称等属性,就可以完成文件夹的添加操作。文件夹建好后,用户可以在该文件夹下新建子文件夹、文件或者【导入】已有的文件夹、文件。 用户还可以在右方的“工作区”中,通过右键菜单【导入】>【文件】或者【导入】>【文件夹】建立文件或文件夹。 2.2、文档发布区 文档在定版归档后,可以对该文件进行定版发布。方法是选中文档,右键菜单【生命周期】>【发布】,执行对文档的发布操作,发布操作包括发布主题和添加发布人员以及其他的一些完善操作。发布后的文件不能再进行属性编辑、数据修改以及删除操作,处于版本确定的状态。发布后,文档呈现“绿色”图标: 慧正工作流系统V6 数据库表说明 目录 1.数据库表整体说明 2 2.引擎核心数据库结构图 5 3.引擎核心表说明 5 3.1.TS_HORIZON_EVENT5 3.2.TW_HORIZON_BUTTON6 3.3.TW_HORIZON_exterior_user6 3.4.TW_HORIZON_Flow_Auth7 3.5.TW_HORIZON_Flow_Def7 3.6.TW_HORIZON_Instance_Log8 3.7.TW_HORIZON_Instance_Version8 3.8.TW_HORIZON_Instance_XML9 3.9.TW_HORIZON_Instance 10 3.10.TW_HORIZON_Task_log 11 3.11.TW_HORIZON_Task 11 3.12.TWR_HORIZON_Instance 12 3.13.TW_HORIZON_AUTHOR 13 3.1 4.TW_HORIZON_AUTHOR_VERSION 14 3.15.TW_HORIZON_CLUSTER_SERVER 14 3.16.TW_HORIZON_CLUSTER_SUBMIT 15 3.17.TW_HORIZON_CLUSTER_SYNC 15 3.18.TW_HORIZON_CLUSTER_TASK 15 3.19.TW_HORIZON_HANDOVERWORK 16 3.20.TW_HORIZON_ROBOT_TASK 16 3.21.TW_HORIZON_TEMPTODO 16 3.22.TW_HORIZON_TODO_SUCCESS 17 3.23.TD_HORIZON_Info 17 3.2 4.TD_HORIZON_User 18 3.25.TD_HORIZON_Agent 18 3.26.TD_HORIZON_Agent_history 19PDM的主要功能
Excel模版创建pdm
PDM系统功能介绍
制造业PDM实例分析
PowerDesigner导出表结构到word
pdm生成数据库表结构
PDM基础介绍
power designer物理数据模型
PDM 系统的开发及应用
PowerDesigner连接Oracle11g反向生成表结构-贵在详细截图说明
(pdm产品数据管理)产品数据与工艺数据的结构化集成
PDM简易教程
10慧正工作流系统V6数据表结构说明