若相依 发表于 2015-1-18 11:03:25

了解下JAVA的iBATIS ResultMap基本浅析

Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)
iBATISResultMap是我们进修iBATIS中十分主要的一个内容,在我团体看来,可否真正用好iBATIS的一个关头,这就是ResultMap。字面上了解,它就是了局集的映照,就是将前往的纪录逐一字段的映照赋值给对象的属性上。实在假如没有特别需求的话我们完整可使用ResultClass来取代它,由于假如字段与属性千篇一律的话,查询出来数据会议主动婚配到ResultClass指定的类的实例对象,假如字段名不在属性中的话,那这个字段将不会被前往的实例体类对象承受,相称于没有查询出这个字段一样的。
每一个ResultMap都有一个本人的ID,假如你在sqlmap.config中没有设置利用定名空间的话,那末这个ResulteMapID是全局(这点在一切的iBATIS设置元素都是一样的),ResultMap一个主要的属性的是class,它将决意这个ResultMap对应的实例的类,换句话讲,它的感化是指出了局集要映照的数据范例。在extends属性中能够设置它将要承继的ResultMap,假如给他指定的了值,那末它将会从superResultmap承继所的映照设置字段。界说以下:

resultMaps  
  resultMap id="DemoResultMap" class="Hashtable"  
  /resultMap  
/resultMaps假如你有准确设置了iBATIS的XSD架构文件的话,那末这时候候就会提醒resultMap的界说是不完整的。没错,接上去就是要界说Result元素。每个result元素都是界说一个字段与数据类属性对应的映照。在每个result元素有对照多的属性参数,个中property和column是必需的,别的的参数属性都是可选的。以是我们在每个resultMap中必需界说凌驾一个以上的result界说。一般以下的设置就能够完成基础的设置了。

resultMaps  
  resultMap id="DemoResultMap" class="Hashtable"  
result property="id" column="id"/  
  /resultMap  
/resultMaps但假如你必要更多的请求的话,resultmap仍旧可以最年夜限制的满意你。
◆columnIndex属性供应了我们将数据集的第几个下标字段映照到指定的数据对象属性的计划,可是这类体例应当只管的罕用,你会发明这对我们今后的保护和可读性会发生很年夜的反作用。
◆dbType属性明白指出这个字段对应的数据库的范例,年夜多半情形我很少会用到。
◆type属性则明白指出这个字段将对应的数据对象属性的数据范例,一般假如你想包管范例平安的话,设置这个属性是很需要的。
◆resultMapping属性则略微庞大一些,它是用在一种场景下,假如一个数据类的属性自己不是基元数据范例,而是一个庞大数据范例的话,那我们就不成能很复杂地给它一个复杂的result元素就了事了,还必需给他一个完全的resultMap。而resultMapping属性就是为了完成这个功效而存在的。它的属性值是一个已存在的resultMap的ID。
◆nullValue属性就没甚么好讲的了,它是给出当这个字段的值为null的时分,它的默许值是几。
◆select属性同resultMapping一样对照庞大一样,先说一下它的属性值必需是一个前往数据汇合的查询语句的ID,能设置这个属性的数据类属性能够是一个基元范例,复合范例,也能够是一个包含多条数据的汇合范例,这些范例都行,没有成绩的。它的一处主要的存在乎义就在于形貌分歧表之间的干系成绩,经由过程本次的查询,你想欠亨过join的手腕从另外一个表查询相干字段的时分,你就能够利用select属性。以下:

resultMaps  
  resultMap id="DemoResultMap" class="Hashtable"  
result property="id" column="id"/  
result property="Children" column="id" select="SELECT_Children"/  
  /resultMap  
     /resultMaps  
     statements  
  select id="SELECT_Children" resultClass="ChildrenObject"  
SELECT * FROM Children WHERE ParentID = #id#  
  /select  
     /statements<p>
IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。

山那边是海 发表于 2015-1-20 13:19:49

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

蒙在股里 发表于 2015-1-25 20:53:40

是一种使网页(Web Page)产生生动活泼画面的语言

谁可相欹 发表于 2015-1-26 22:26:18

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

柔情似水 发表于 2015-2-4 21:00:57

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

只想知道 发表于 2015-2-10 10:18:45

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

第二个灵魂 发表于 2015-3-1 08:48:48

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

分手快乐 发表于 2015-3-10 12:59:49

Java是一种计算机编程语言,拥有跨平台、面向对java

冷月葬花魂 发表于 2015-3-17 07:12:30

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

小女巫 发表于 2015-3-24 01:45:47

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
页: [1]
查看完整版本: 了解下JAVA的iBATIS ResultMap基本浅析