搜档网
当前位置:搜档网 › Mybatis学习笔记

Mybatis学习笔记

Mybatis学习笔记
Mybatis学习笔记

Mybatis 学习笔记

1. mybatis 是什么?

● mybatis 是一个持久层的框架,是apache 下的顶级项目。

● mybatis 让程序将主要精力放在sql 上,通过mybatis 提供的映射方式,自由灵活生成(半自动化,

大部分需要程序员编写sql )满足需要sql 语句。

● mybatis 可以将向 preparedStatement 中的输入参数自动进行输入映射,将查询结果集灵活映射成java

对象。(输出映射)

2. mybatis 框架

3. 一个原始查询代码

4. “主键”生成及返回

mysql自增主键

a)执行insert提交之前自动生成一个自增主键。通过mysql函数LAST_INSERT_ID()获取到刚插入记录

的自增主键。是insert之后调用此函数。

?mysql UUID主键

使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位。

执行思路:先通过uuid()查询到主键,将主键输入到sql语句中。执行uuid()语句顺序相对于insert语句之前执行。

?Oracle序列主键

SELECT 序列名.nextval()

insert into user(id,username,birthday,sex,address)

value(#{id},#{username},#{birthday},#{sex},#{address})

5. 一个删除用户的代码

主要注意:https://www.sodocs.net/doc/0418384606.html,mit()提交事务操作。

6. XML配置文件参数说明

?parameterType

在映射文件中通过parameterType指定输入参数的类型。类型可以是简单类型、hashmap、pojo的包装类型。mapper接口方法参数只能有一个, 即使mapper接口只有一个参数,可以使用包装类型的pojo满足不同的业务方法的需求。

?resultType

在映射文件中通过resultType指定输出结果的类型。

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。

只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象,不一致的属性的值为null。

查询出来的结果集只有一行且一列,可以使用简单类型进行输出映射。

不管是输出的pojo单个对象还是一个列表(list中包括pojo),在mapper.xml中resultType指定的类型是一样的。在mapper.java指定的方法返回值类型不一样:

(1)输出单个pojo对象,方法返回值是单个对象类型

(2)输出pojo对象list,方法返回值是List

生成的动态代理对象中是根据mapper方法的返回值类型确定是调用selectOne(返回单个对象调用)还是selectList (返回集合对象调用).

?#{}和${}

#{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。

如果接收简单类型,#{}中可以写成value或其它名称。

#{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

${}表示一个拼接符号,会引用sql注入,所以不建议使用${}。

${}接收输入参数,类型可以是简单类型,pojo、hashmap。

如果接收简单类型,${}中只能写成value。

${}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

?selectOne和selectList

selectOne表示查询出一条记录进行映射。如果使用selectOne可以实现使用selectList也可以实现(list中只有一个对象)。

selectList表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录,不能使用selectOne。如果使用selectOne报错:

org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4

如果mapper方法返回单个pojo对象(非集合对象),代理对象内部通过selectOne查询数据库。如果mapper 方法返回集合对象,代理对象内部通过selectList查询数据库。

7. 几个对象的说明

?SqlSessionFactoryBuilder

通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory

将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBuilder。

在需要创建SqlSessionFactory时候,只需要new一次SqlSessionFactoryBuilder即可。

?SqlSessionFactory

通过SqlSessionFactory创建SqlSession,使用单例模式管理sqlSessionFactory(工厂一旦创建,使用一个实例)。将来mybatis和spring整合后,使用单例模式管理sqlSessionFactory。

?SqlSession

SqlSession是一个面向用户(程序员)的接口。

SqlSession中提供了很多操作数据库的方法:如:selectOne(返回单个对象)、selectList(返回单个或多个对象)。SqlSession是线程不安全的,在SqlSesion实现类中除了有接口中的方法(操作数据库的方法)还有数据域属性。

SqlSession最佳应用场合在方法体内,定义成局部变量使用。

8. 原始DAO的开发

程序员需要写dao接口和dao实现类。

需要向dao实现类中注入SqlSessionFactory,在方法体内通过SqlSessionFactory创建SqlSession

测试代码:

9. mapper代理开发

开发规范:

1、在mapper.xml中namespace等于mapper接口地址

2、mapper.java接口中的方法名和mapper.xml中statement的id一致

3、mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。

4、mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致。

?测试代码

10. 全局配置文件SqlMapConfig.xml

properties(属性)

settings(全局配置参数)

typeAliases(类型别名)

typeHandlers(类型处理器)

objectFactory(对象工厂)

plugins(插件)

environments(环境集合属性对象)

environment(环境子属性对象)

transactionManager(事务管理)

dataSource(数据源)

mappers(映射器)

?properties特性:

注意:MyBatis 将按照下面的顺序来加载属性:

◆在properties 元素体内定义的属性首先被读取。

◆然后会读取properties 元素中resource或url 加载的属性,它会覆盖已读取的同名属性。

◆最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

建议:

不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。

在properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

settings全局参数配置

mybatis框架在运行时可以调整一些运行参数。比如:开启二级缓存、开启延迟加载。

typeAliases定义别名

在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType 指定输出结果的映射类型。

如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。

mybatis默认支持别名:

别名映射的类型

_byte byte

_long long

_short short

_int int

_integer int

_double double

_float float

_boolean boolean

string String

byte Byte

long Long

short Short

int Integer

integer Integer

double Double

float Float

boolean Boolean

date Date

decimal BigDecimal

bigdecimal BigDecimal

单个别名定义

引用别名:

批量定义别名(常用)

typeHandlers(类型处理器)

mybatis中通过typeHandlers完成jdbc类型和java类型的转换。

通常情况下,mybatis提供的类型处理器满足日常需要,不需要自定义.

mybatis支持类型处理器:

类型处理器Java类型JDBC类型BooleanTypeHandler Boolean,boolean 任何兼容的布尔值ByteTypeHandler Byte,byte 任何兼容的数字或字节类型ShortTypeHandler Short,short 任何兼容的数字或短整型IntegerTypeHandler Integer,int 任何兼容的数字和整型LongTypeHandler Long,long 任何兼容的数字或长整型FloatTypeHandler Float,float 任何兼容的数字或单精度浮点型DoubleTypeHandler Double,double 任何兼容的数字或双精度浮点型

BigDecimalTypeHandler BigDecimal 任何兼容的数字或十进制小数类型StringTypeHandler String CHAR和VARCHAR类型ClobTypeHandler String CLOB和LONGVARCHAR类型NStringTypeHandler String NVARCHAR和NCHAR类型NClobTypeHandler String NCLOB类型ByteArrayTypeHandler byte[] 任何兼容的字节流类型BlobTypeHandler byte[] BLOB和LONGVARBINARY类型DateTypeHandler Date(java.util)TIMESTAMP类型DateOnlyTypeHandler Date(java.util)DATE类型TimeOnlyTypeHandler Date(java.util)TIME类型SqlTimestampTypeHandler Timestamp(java.sql)TIMESTAMP类型SqlDateTypeHandler Date(java.sql)DATE类型

SqlTimeTypeHandler Time(java.sql)TIME类型

ObjectTypeHandler 任意其他或未指定类型EnumTypeHandler Enumeration类型VARCHAR-任何兼容的字符串类型,

作为代码存储(而不是索引)。

mappers(映射配置)

通过resource加载单个映射文件

通过mapper接口加载单个mapper

按照上边的规范,将mapper.java和mapper.xml放在一个目录,且同名。

批量加载mapper(推荐使用)

11. 定义包装类型pojo

在包装类型的pojo中将复杂的查询条件包装进去。

12. resultMap高级映射

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

13. resultMap一对一映射?java代码

?sql语句

?resultMap映射

14. resultMap一对多映射?java代码

?查询语句

?resultMap映射

15. resultMap多对多映射?java代码

查询语句

?resultMap映射

16. resultType和resultMap比较

resultType:使用resultType实现较为简单,如果pojo中没有包括查询出来的列名,需要增加列名对应的属性,即可完成映射。如果没有查询结果的特殊要求建议使用resultType。

resultMap:需要单独定义resultMap,实现有点麻烦,如果对查询结果有特殊的要求,使用resultMap可以完成将关联查询映射pojo的属性中。

resultMap可以实现延迟加载,resultType无法实现延迟加载。

17. 动态sql

?什么是动态sql

mybatis核心对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。

?If判断

?sql片段(代码重用)

foreach遍历

向sql传递数组或List,mybatis使用foreach解析。

1、实现:SELECT * FROM USER WHERE name=’abc’AND (id=1 OR id=10 OR id=16)

Intouch非常实用的总结

INTOUCH非常有用的使用总结 intouch授权: 授权文件wwsuite.lic放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用? 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置? 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决? 文件夹下,删除appedit.lok。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\setup.exe 如何使用Unity编程软件的仿真器来与Intouch通信?

Intouch报表

在InTouch中如何使用excel做报表 在InTouch中有很多做报表的方法,本文介绍在InTouch中如何使用excel 来做报表。 首先在Wonderware InTouch 中使用历史数据导出工具histdata , 将Wonderware InT ouch 生成的历史数据导出到文本文件excel中。然后您可以在excel中通过函数对这些数据进行处理生成您需要的数据,如流量、压力、液位等。再通过intouch提供的DDE协议将excel中的数据在intouch中您制作的那个表格里显示出来。 以下是用histdata将intouch历史数据导出到excel中的一些步骤: 1、在Wonderware InTouch 中配置访问名 2、使用INTOUCH向导,打开向导的“趋势”组。选择histdata向导,粘贴到窗口。

双击给其指定一个“历史趋势”型标记名。 3、使用histdata向导时,会自动创建histdata标记名。进入标记名字典可以 看到一些以HDW开头的io型标记名,如HDWDataDir。 Wonderware InTouch 自动生成需要的标记名,这些标记名说明如下:HDWDATADIR 消息型历史数据文件的目录的路径名 例如HDWDataDir = HTGetLogDirectory(); HDWDBDIR 消息型InTouch 标记名字典的目录的路径名

例如HDWDBDir = InfoInTouchAppDir(); HDWSTARTDATE 消息型与$DateString相同格式的数据采样开始日期HDWSTARTTIME 消息型使用24 小时时钟的HH:MM:SS 格式的数据采样 开始时间 HDWDURATION 消息型数据时间长度(报表时间总长度),可以用星期, 天时,分,秒,等来表示下面是有效的字符:w 星期, d 天,h 小时,m 分,s 秒。允许使用小数值例如.5s 表示500 毫秒,若只需一个样本请将DURATION 设 为0 零 HDWINTERVAL 消息型采样间隔的时间长度,可以用星期日小时分和秒来 表示例如1W 表示一星期允许使用小数值例如用.25d 来表示6小时,有效字符与HDDURATION 相同,注意 DURATION 和INTERVAL 允许的最大时间长度均为6 周,这适用于所有请求类型日、秒等,例如如果使用日 则最大值为42,7 天x 6 周= 42 HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名),以 TagA,TagB,……TagZ 格式输入,此外采样日期和或时间可 以通过使用内部系统标记名$Date 和$Time 来请求,例如 "$Date,TagA,TagB" 或"$Time,TagA,TagB" 或 "$Date,$Time,TagA,TagB" HDWTAGS1, TAGS2,.... 消息型HDWTAGS 字符串在WindowViewer

古代西亚国家教案

课题古代西亚国家备课日期9.5 主备人 上课日期9.7 总课时 1 教学目标情感、态度、价值观目标:通过教学,体会自然环境对文明的重要影响。认识古代西亚国家文明的文明成就对现代社会的深远影响。 能力目标:培养学生综合分析问题、从材料中获取信息的能力。 知识目标:知道古代巴比伦进入早期文明的典型标志:汉谟拉比法典。知道古代西亚地区的其他文明成就,如楔形文字、字母文字。 教学重点古代西亚国家的文明成就教学难点对《汉谟拉比法典》的认识 设计亮点 充分运用多媒体教学手段,展示大量的影像、动画、图片等信息,不断地为学生创设一种历史情境,激发学生的兴趣,刺激学生的有意注意。讨论题的设计,有目的地引导学生去探究。在讨论中,既可以解决教学中的重点、难点问题,又可以培养学生交流、合作的意识。 教学过程备注 环节一:问题思考,导入新课。 列举现代西亚国家的热点问题,引入新课教学。 设计意图:从现实问题中引出对历史问题的思考,激发学习兴趣。 环节二:阅读图文,自主探究 据图分析:河流、民族、重要城市、气候、自然环境等。 早期城市国家的出现、两河流域的统一等。 设计意图:知道西亚地区的地理位置、自然环境等,以及出现的早期文明代表:古巴比伦、希 伯来王国、腓尼基。从中体会体会自然环境对文明的重要影响。 环节三:角色扮演,突破难点 第一步:演一演:请同学们结合教材P6 《汉谟拉比法典》中的某些条文规定:进行表演。并 说说每一条文反应的意思?(分组进行)并从这些条文中,简单分析古巴比伦的社会阶级状况。 第二步:想一想:这些规定与现代的法律精神有什么不同? 第三步:议一议:分析《汉谟拉比法典》的实质。 设计意图:角色扮演,拉近历史与现实的距离,激发学习兴趣。通过以上三步,深入理解法典 的实质。培养学生综合分析问题、从材料中获取信息的能力。 环节四:自主学习,突出重点 第一步:认一认:楔形文字和字母文字,激发兴趣。 第二步:说一说:两种文字出现的原因、特点。 第二步:理一理:两种文字对世界语言文化发展的贡献。 设计意图:古代西亚国家的文明成就:文字,突出重点。培养学生分析问题的能力。 环节五:总结拓展,升华主题 1、古代西亚国家发展的历程。公元前3500年,公元前18世纪,公元前16世纪。 设计意图:理清全文脉络,总结新课。 2、古代西亚国家的文明对现代社会的深远影响。 设计意图:通过了解古代西亚国家文明的文明成就,体会他们对现代社会的深远影响。 板书设计 古代西亚国家 1、古代西亚文明之源 2、古巴比伦王国的建立 3、《汉谟拉比法典》 4、西亚文字及其影响 作业安排:作业本相关练习 1

mybatis中文版教程

MyBatis Spring1.0.0-RC3 参考文档 MyBatis 社区(https://www.sodocs.net/doc/0418384606.html,) Copyright ? 2010 本文档的拷贝仅允许您个人使用或分发给其他用户,但是不能收取任何费用,后期的发布无论是印刷版或电子版,也会进行版权声明。 本文档由南磊(nanlei1987@https://www.sodocs.net/doc/0418384606.html,)翻译

目录 第一章介绍 (3) 1.1 整合动机 (3) 1.2 要求 (3) 1.3 感谢 (3) 第二章入门 (4) 2.1 安装 (4) 2.2 快速创建 (4) 第三章SqlSessionFactoryBean (6) 3.1 创建 (6) 3.2 属性 (6) 第四章事务 (8) 4.1 标准配置 (8) 4.2 容器管理事务 (8) 第五章使用SqlSession (9) 5.1 SqlSessionSupport (9) 5.2 SqlSessionTemplate (9) 第六章MapperFactoryBean (11) 6.1 创建 (11) 6.2 注入映射器 (11) 6.3 自动配置 (12) 第七章使用MyBatis API (13) 第八章示例代码 (14)

第一章介绍 1.1 整合动机 正如第二版,Spring仅支持iBatis2。那么我们就想将MyBatis3的支持加入到Spring3.0(参考Spring的Jira的问题)中。不幸的是,Spring 3.0的开发在MyBatis 3.0官方发布前就结束了。因为Spring开发团队不想发布一个基于非发行版的MyBatis的整合支持,那么Spring 官方的支持就不得不等到至少3.1版本了。要在Spring中支持MyBatis,MyBatis社区认为现在应该是自己团结贡献者和有兴趣的人一起来开始进行Spring和MyBatis整合的时候了。 这个小类库就来创建丢失的粘贴Spring和MyBtatis这两个流行框架的胶水。减少用户不得不来配置MyBatis和Spring 3.X上下文环境的样板和冗余代码。它还透明地增加了Spring 对MyBatis事务的支持。 1.2 要求 在开始阅读本手册之前,很重要的一点是你要熟悉Spring和MyBatis这两个框架还有和它们有关的术语,本手册不会提供二者的背景内容,基本安装和配置教程。 和MyBatis一样,MyBatis-Spring也需要Java 5或更高版本。 1.3 感谢 非常感谢那些使得本项目成为现实的人们(按字母顺序排序)。Eduardo Macarron,Hunter Presnall和Putthibong Boonbong的编码工作,测试和文档修改;Andrius Juozapaitis,Giovanni Cuccu,Raj Nagappan和Tomas Pinos的贡献;而Simone Tripodi发现了这些人并把他们带入项目之中。没有他们的努力,这个项目是不可能存在的。

1.1.2古代西亚国家练习题及答案

1.1.2 古代西亚国家(练习) 一、选择题∶ 1.(2017·山东威海·18)人类早期的文明最早诞生在亚非的大河流域。右图是哪个古代文明的发源地( ) A.古巴比伦王国 B.古代埃及 C.古代印度 D.古代中国 2.(2017·福建龙岩·16)下列古迹属于古巴比伦王国的是( ) A.金字塔B.汉谟拉比法典石柱 C.故宫太和殿 D.印度河流域古城址3.(2017·辽宁辽阳·7)根据律奴法典的记载,神创造了婆罗门.刹帝利.吠舍和首陀罗四个种姓。种姓之间等级分明,低等级的男子不能娶高于他们等级的女子;首陀罗不能享有财产权;等级越高授予的墓冢越大。上述现象出现在( ) A.古埃及 B.古巴比伦C.古印度 D.古罗马4.(2017·江西·11)右边是某文物的图片(局部)。对该文物上的文字进行解 读.研究可以了解( ) A.古巴比伦奴隶制度概貌 B.古印度种姓制度的影响 C.欧洲封建等级制的形成 D.阿拉伯人对世界的贡献 5.(2017·江苏泰州·41)1901年,法国考古队在两河流域的苏撒遗址中发现了一黑色玄武岩圆柱,它的上面刻有用楔形文字写成的“前言”及法律条文,

该法律条文是( ) A.《汉谟拉比法典》B.《民法典》 C.《隋律》 D.《唐律疏议》 6.大河流域以其独特的地理环境孕育了人类璀璨的文明。两河流域孕育出的古代人类文明是 ( ) A.古代西亚文明 B.古印度文明 C.古希腊文明 D.古埃及文明7.两河流域是世界古代文明发祥地之一,两河流域是指 ( ) A.东亚地区 B.波斯湾两岸 C.“新月沃地”东部 D.黄河与长江流域 8.下列关于两河流域的表述,正确的是 ( ) A.这里是犹太人祖先的定居地 B.两河流域位于“新月沃地”的西部 C.两河沿岸的农业发展更多地依靠两河河水的定期泛滥 D.两条河流水量稳定 9.最早在两河流域定居的居民是 ( ) A.苏美尔人 B.阿卡德人 C.希伯来人 D.腓尼基人 10.统一了两河流域,建立起强大的奴隶制国家的时间和人物分别是 ( ) A.公元18世纪、汉谟拉比 B.公元前18世纪、美尼斯 C.公元前18世纪、汉谟拉比 D.公元前3000年、美尼斯 11.犹太人与下列哪类人有关 ( ) A.苏美尔人 B.阿卡德人 C.腓尼基人D.希伯来人12.根据迄今发现的史料,世界上最早以成文法典形式来加强对平民和奴隶的统治的国家是 ( ) A.中国的夏朝 B.古代埃及C.古巴比伦 D.古代印度13.《古巴比伦的兴衰》记述了这样的场面:奴隶阿卜对主人尼布说“你不是我的主人”,结果被判割耳朵。判罚的依据应是 ( ) A.罗马法 B.《圣经》C.《汉谟拉比法典》 D.《十二铜表法》14.古代西亚地区广泛使用的楔形文字的创造者是 ( )

黑马程序员mybatis教程第二天:延迟加载

延迟加载 什么是延迟加载 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 使用association实现延迟加载 需求 查询订单并且关联查询用户信息 mapper.xml 需要定义两个mapper的方法对应的statement。 1、只查询订单信息 SELECT * FROM orders 在查询订单的statement中使用association去延迟加载(执行)下边的satatement(关联查询用户信息) 2、关联查询用户信息 通过上边查询到的订单信息中user_id去关联查询用户信息

使用UserMapper.xml中的findUserById 上边先去执行findOrdersUserLazyLoading,当需要去查询用户的时候再去执行findUserById,通过resultMap的定义将延迟加载执行配置起来。 延迟加载resultMap 使用association中的select指定延迟加载去执行的statement的id。

Intouch非常实用的总结

INTOUCH非常有用的使用汇总报告 intouch授权: 授权文件wwsuite.lic放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用? 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置? 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决? 文件夹下,删除appedit.lok。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\setup.exe 如何使用Unity编程软件的仿真器来与Intouch通信? ⑴首先保证Unity编程软件在仿真状态(PLC→仿真模式。) ⑵将程序现在到仿真器,仿真器就会自动启动起来了。

mybatis教程从入门到精通

mybatis教程从入门到精通 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到sessionfactory. 2. 由sessionfactory 产生session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为MyBaits 的dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将mybatis- 3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到web工程的lib 目录. 3. 创建mysql 测试数据库和用户表,注意,这里采用的是utf-8 编码 创建用户表,并插入一条测试数据 程序代码程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为src_user,test_src, 用如下方式建立,鼠标右键点击JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下:

intouch学习总结

1.intouch和Modsim32一起仿真的设置 2. 注意:在仿真时如果有离散的又有模拟量必须用两个Modsim32来仿真,不然再切换modsim32显示界面的时候会出现通讯异常,一下就是两个仿真器 MODSIM32: connection-------->modbustcpserver启动 File--------------->new Device ID 1 (这个后面要用到) Intouch SMC: 安装DASMBTCP DAserver --------->new_tcpIP_port-----502端口-------->new modbus bridge-----modsim32所在电脑的IP----->new_modiconMicro--------->( PLC unit ID:1 DeVice Group:Topic_0 ) Modsim32在本机127.0.0.1

intouch中访问名的设置: 主题名和DEVICE grops的主题名一致 协议选用SuiteLink DA server 都是SuiteLink是用的OPC通讯DDE是IOserver与intouch的通讯协议 在ArchestraIDe中的设置如下图:

Seevernode:运行DAserver的电脑IP Server name: daserver驱动程序的名称 COmmnication protocol: suiteLink Topic:和SMC中配置的DEvice groupS中的保持一致 Attribute:变量名任取(注意要满足命名规则,方便自动链接IO)TteM reference:变量的地址

mybatis-3-mapper

>

Intouch非常实用的总结

I n t o u c h非常实用的总结标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DDQTY-KII

INTOUCH非常有用的使用总结 intouch授权: 授权文件放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决 文件夹下,删除。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\ 如何使用Unity编程软件的仿真器来与Intouch通信

区域地理 西亚 教案

区域地理西亚(教案设计) 一、教案背景 1、学科:地理 2、课时:1 3、学生课前准备: (1)预习课本39—41页,了解西亚的概况,并完成导学案。 (2)小组合作搜集相关信息并汇总。 二、教学课题 区域地理第二章世界地理第三节西亚 三、教学目的 知识与技能 1.结合地图认识西亚的自然环境特点,尤其是地理位置的重要性——“五海三洲之地”。 2.了解西亚的居民和经济。 2.掌握西亚石油资源在世界的地位、分布特点和主要产油国以及主要的输出路线。 过程与方法 培养读图分析能力,搜集并分析信息的能力。 情感态度和价值观 多角度了解西亚石油资源对世界的影响。从而培养学生的资源观,可持续发展观及增强其对时事热点的敏感度。 四、教学方法 1.联系生活实际,运用直观法、小组讨论法等教学方法,让学生在合作与交流中获取知识,调动学生的积极性,让每一个学生都能参与到活动中来。 2.教学中强调图表运用,引导学生思虑问题。 五、教材分析 内容分析:本节内容分为两大部分:一是西亚的地理概述,包含其位置范围、地形、气候、河流、自然资源;二是居民和经济。西亚在世界上具有独特的地位,主要表现在:一是十分典型的干旱环境。西亚作为典型的干旱环境,农业发展中的节水具有很大的特色和学习性。二是西亚的石油世界闻名,它在世界的能源构成中具有举足轻重的地位,对发达国家的经济发展影响较大。三是西亚的战略地位,西亚一直是某些大国的争夺目标,所以纷争不断,由此也影响着世界的和平与发展。 学情分析:高二学生已经基本掌握学习区域地理的方法,在此基础上还应培养学生对时事热点与区域地理之间的关系的敏感度。小组合作探究教学活动,帮助学生获得丰富的情感体验。并且在活动中探究,探究中发现和解决问题,鼓励学生做有效尝试和创造性活动。 教学重点: 1.西亚地理位置的重要性;西亚的石油资源分布及输出。 2.了解西亚石油主要输往地区,及主要的海上运输路线。 教学难点: 1.运用地图说明西亚地理位置的重要性 2.结合地图说出重要的输油线路,并指出其经过的重要海域、海峡、运河。

Intouch 使用介绍

下一代工业自动化软件的开发平台 Wonderware ArchestrA?

Wonderware 企业级应用和信息系统的新平台 -- ArchestrA
Wonderware 在过去的 5 年中投入了巨大的人力和资金为工业应用开发这样一个强大的平台(见图一) 。 Wonderware 很早就认识到在一个统一的平台之上创建和运行工业应用程序的重要性。这样的一个新的平 台框架使应用程序的开发者能专著于充分利用他们本行业的专业知识,而不用再底层技术细节上花费过多 的精力。 这个全新的技术叫做:ArchestrA? -- 她不是传统意义上的一个单独的产品,而是一个平台,一套底层服 务。这个新的技术给工业自动化应用的开发者:从系统集成商、OEM、增值销售商到最终用户带来巨大的 好处。
(图一) Wonderware 将工业自动化软件都需要的一些的共同的基本的功能和服务( Services )抽象出来,构成 ArchestrA? 平台。她旨在将用户从复杂的底层技术中解放出来,他们只需要“组合”的技能,而不是“编 程” 技术, 并专注于他们已经熟悉的本行业的专业知识。 这个平台构架在微软操作系统和相关软件 (例如.Net 框架)之上。 ArchestrA? 致力于提供一个可以在各种自动化行业实施的,包含通用底层结构的平台。ArchestrA? 提供如 下一些公共服务: ? 设计和开发环境 Design and development environment ? 部署机制 Deployment Services

? 脚本和计算服务 Powerful scripting and calculation services ? 报警和事件子系统 Alarm and Event subsystem, for management, delivery, printing, and historization services for alarm and events ? 强大的内置的历史纪录和数据传输服务 Powerful built in historization and guaranteed delivery services ? 规模可伸缩性 Built in distributed architecture services for scaleability ? 集成硬件驱动 Integration with and data acquisition from all types of field devices ? 对象间通讯和命名服务 Inter-object communications and name service management services ? 版本管理服务 Version management services ? 安全机制服务 Security Model services ? 集中授权和部署服务 Centralized license management and deployment services ? 集中故障诊断服务 Centralized system diagnostics and system administration services ? 对象和应用服务的国际化 Internationalization of objects and application services ? 界面编辑服务 Graphical/UI editing services, with multiple runtime rendering services ? 报表和查询服务 Reporting and Query services ? 支持 OPC 和 SQL 等工业标准 Common support for industry standards such as OPC and SQL 这个仍然可以扩展的特点列表,预示着在不久的将来工程师们开发工业自动化应用的方式将会发生巨大的 变化!工程师们将用一种全新的,以工厂为中心(Plant-centric ) ,组件化对象化的方式进行系统设计。在 微软 Windows 和 Wonderware 的 ArchestrA? 所构筑的新平台之上, 工程师可以复用在不同的工程中产生的 对象。 Wonderware 的 FactorySuite 已经有多年的历史,此套件已经经历了两代的增强集成,集管理控制、制造执 行、 批管理以及其它功能于一身, 但是 ArchestrA 将把集成度带到一个新的水平。 由 FactorySuite 向 ArchestrA 转变将分两个阶段进行: ? The FactorySuite Scalable Application ? FactorySuite Next Generation (NG) 在第一个阶段中,系统采用一种 “ 混合 ” 策略,引入的新的组件“ Application Server ”就是一个架构在 ArchestrA? 之上的后台服务器,最新的 FactorySuite 的其他组件可以和 Application Server 配合使用,现有 的 FactorySuite 用户不会被抛弃。 在第二个阶段 FactorySuite NG 中,新的 FactorySuite 应用将全部组件化,给用户提供了空前的可扩展性和 灵活性。

(完整版)古代西亚国家

古代西亚国家 一、教学目标 1.通过读图说出古代西亚文明的空间范围和了解古巴比伦的历史沿革。 2.列举西亚各主要民族的文明成就。 3.通过活动,分析《汉谟拉比法典》的特点和内涵的法律精神。 二、重点 《汉谟拉比法典》、楔形文字和腓尼基字母文字的区分 三、难点 《汉谟拉比法典》的特点及其所蕴含的法律精神。 四、思维导图 五、教学过程 导入: 师:阅读新闻内容,说出新闻讲了一件什么事?为什么政府提醒中国公民不要前往这些国家?

师:这一地区在现在我们可以发现它战乱频繁,比较落后,但在遥远的古代这里又是一幅怎样的场景呢? 环节一:西亚国家的位置 1.空间位置 师:观察P5图1—5新月沃地,新闻中所提及的地区大致位于哪一范围。 生:两河流域 师:以色列和黎巴嫩是在哪里的呢?两河流域指的是哪里呢?新月沃地除了包含两河流域以外还包含了西侧的约旦河谷地区。 生:新月沃地 师:为什么用新月沃地给这一地区命名呢?(新月形+土壤肥沃) 2.自然环境 师:结合课本第五页第一自然段以及我们之前在七年级上册所学过的沙漠绿洲以色列谈一谈你对这一地区自然环境的一些认识。(补充诺亚方舟和圣经旧约中留着奶与蜜的犹太人的故乡) 环节二:主要的文明成就 1.列举主要文明成就 师:总的来说,我们可以得出这样一个结论这里环境较为恶劣,河流比较不稳定。但在历史上这里却创造了辉煌的文明。这与生活在这里的先民的开发是离不开的。在这里有曾经有哪些民族在这里生活过?他们又分别创造了哪些文明成就呢? 师:请同学们自主阅读读第五页和第六页的内容,找出这里生活了哪些古老民族,他们分别创造了什么文明呢? 2.两河流域的文字 (展示楔形文字图片) 师:猜一猜是哪种文字?你为什么这样认为?(总结定义)这种文字产生的影响? (展示腓尼基字母)与晚期拉丁文字连线。 对比已经学习过的埃及象形文字、楔形文字和腓尼基字母文字

intouch for 语句用法

Intouch脚本函数之For循环语句使用说明 For循环可以反复执行一段代码。InTouch HMI 仅支持 FOR 循环。FOR 循环按所监视的每次循环迭代产生的递增或递减的数值循环变量值来进行。循环一直执行到循环变量值达到设定值。 For 语法如下: FOR LoopTag = StartExpression TO EndExpression [STEP ChangeExpression] ... 语句或另一个 FOR 循环 ... NEXT; ? StartExpression, EndExpression 与ChangeExpression 共同定义迭代次数。 ? StartExpression 设置循环范围的开始值。EndExpression 设置循环范围的结束值。 ? STEP ChangeExpression 可选择设置每次循环迭代过程中循环标记所递增或递减的值;如果不指定此值,则使用缺省值 1,即每次循环对LoopTag加1。 例子e.g: FOR i=1 TO 100 STEP 2 ...........语句 NEXT; //表示每次循环i加2,总计循环50次 执行 FOR 循环时, InTouch HMI: 1 将 LoopTag 设置为 StartExpression 的值。 2 测试 LoopTag 是否大于 EndExpression。如果是,InTouch HMI 退出循环。(如果ChangeExpression 为负数,则 InTouch HMI 测试LoopTag 是否小于EndExpression)。 3 执行循环内的语句。 4 按 ChangeExpression 的值(除非另外指定,否则设为 1)递增 LoopTag。 5 重复步骤 2 到 4直到LoopTag达到 EndExpression的值。 使用 FOR 循环时请记住以下规则: ? FOR 循环可以嵌套。最大嵌套级数取决于可用的内存与系统资源。 ? 对于每个 FOR 语句,必有一个 NEXT 结束语句。与If...else语句相同,在同一嵌套级别中, NEXT 语句总是应用于前面最接近的FOR 语句。 ? LoopTag 必须是数值标记(或局部变量),比如整形标记。 ? StartExpression、EndExpression 以及ChangeExpression 必须是赋值为数值结果的有效表达式,比如整形标记。 ? 如果 ChangeExpression 为正, EndExpression 必须大于 StartExpression ;反之如果 ChangeExpression 为负,StartExpression 必须大于EndExpression。否则循环不会开始。 强制结束循环 您可以通过调用语句 EXIT FOR; 在任何时间退出循环。此语句使脚本继续执行紧接着循环 NEXT 语句后的其他语句。 示例 下面的代码段使用循环将大量的虚拟记录插入数据库表。如果插入记录时发生错误,则放弃循环以防止产生更多错误。 FOR Counter = 1 TO 1000 ResultCode = SQLInsert(ConnectionID, "BatchDetails","BindList1"); IF ResultCode <> 0 THEN LogMessage("Error creating records!Aborting..."); EXIT FOR; ENDIF; NEXT; 循环对其它运行时进程的影响 执行 FOR 循环时, WindowViewer 中的所有其它运行时进程都暂停。包括以下进程: ? 屏幕更新(动画链接、值显示、趋势等)。到循环完成之前不会发生任何移动,因此不能给动画对象使用 FOR循环。 ? I/O 通讯。例如,如果修改 FOR 循环中 I/O 标记的值,则只有最终的迭代后面的值才会写入 I/O 设备。 ? 其它脚本,包括异步 QuickFunction。 您可以通过将 FOR 循环放入异步 QuickFunction 来避免暂停其它运行时进程。 循环执行的时间限制 为避免无限循环,程序设置了一个时间限制, FOR 循环必须在这个时间限制内完成执行否则WindowViewer 会自动终止循环它,并将一条关于终止的消息写入 Log Viewer中。 默认缺省的循环时间限制为 5 秒。可以通过向应用程序目录中的 intouch.ini文件添加下面这行以对它进行自定义循环时间:LoopTimeout=x

Mybatis-3.3.0官方文档-中文.pdf

来获取。

Copyright ? 2010–2015 https://www.sodocs.net/doc/0418384606.html,. All rights reserved.

XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务范围和控制方式的事务管理器(TransactionManager)。XML 配置文件的详细内容后面再探讨,这里先给出一个简单的示例: 当然,还有很多可以在XML 文件中进行配置,上面的示例指出的则是最关键的部分。要注意 XML 头部的声明,用来验证 XML 文档正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的XML 文件包含了 SQL 代码和映射定义信息)。 不使用 XML 构建 SqlSessionFactory 如果你更愿意直接从 Java 程序而不是 XML 文件中创建 configuration,或者创建你自己的 configuration 构建器,MyBatis 也提供了完整的配置类,提供所有和 XML 文件相同功能的配置项。

注意该例中,configuration 添加了一个映射器类(mapper class)。映射器类是 Java 类,它们包含 SQL 映射语句的注解从而避免了 XML 文件的依赖。不过,由于 Java 注解的一些限制加之某些 MyBatis 映射的复杂性,XML 映射对于大多数高级映射(比如:嵌套Join 映射)来说仍然是必须的。有鉴于此,如果存在一个对等的 XML 配置文件的话,MyBatis 会自动查找并加载它(这种情况下,BlogMapper.xml 将会基于类路径和 BlogMapper.class 的类名被加载进来)。具体细节稍后讨论。 从 SqlSessionFactory 中获取 SqlSession 既然有了 SqlSessionFactory ,顾名思义,我们就可以从中获得 SqlSession 的实例了。SqlSession 完全包含了面向数据库执行SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。例如: 诚然这种方式能够正常工作,并且对于使用旧版本 MyBatis 的用户来说也比较熟悉,不过现在有了一种更直白的方式。使用对于给定语句能够合理描述参数和返回值的接口(比如说BlogMapper.class),你现在不但可以执行更清晰和类型安全的代码,而且还不用担心易错的字符串字面值以及强制类型转换。 例如: 现在我们来探究一下这里到底是怎么执行的。

相关主题