ibatis学习2

原创 2012年03月28日 14:12:56

摘:《ibatis开发指南》

sql map映射文件的元素和属性简要介绍

1.大于小于号等不能直接使用,将包含特殊字符的sql语句放在xml的cdata区里面
<statement id="" parameterClass="" resultClass="">
 <![CDATA[
   select *from person where age>#value#
 ]]>
</statement>

2.自动生成主键(sql通过<insert>的子元素<selectKey>来自动生成键值)
1)预生成(oracle):
<insert id="" parameterClass="">
         <selectKey resultClass="int" keyProperty="id">
                 select stockidsequence.nextval as id from dual
            </selectKey>
             insert into product(prd_id,prd_description)
             values (#id#,#description#)
</insert>
2)后生成(mysql)
<insert id="" parameterClas="">
     insert into product(prd_description)
      values (#description#)
      <selectKey resultClass="int" keyProperty="id">
               select @@identity as id
      </selectKey>
</insert>

3.parameterClass:java类的全限定名(包括类的包名) 
可选,目的是限制输入参数的类型为指定的java类,并优化框架性能
建议使用parameterClass,通过使用parameterClass,可以获得更好的性能,因为如果框架事先知道这个类
就可以优化自己的性能,如果不指定parameterClass参数,任何带有合适属性(get/set方法)的javabean都
可以作为输入参数

4.parameterMap的值等于一个预先定义的<parameterMap>元素的id。parameterMap属性很少使用,
更多的使用上面的parameterClass和inline parameter
注:动态mapped statement只支持inline parameter 不支持parameter map
基本思想:定义一系列有次序的参数系列,用于匹配jdbc preparedstatement的值符号。
<parameterMap id="insert-product-param" class="">
      <parameter property="id"/>
     <parameter property="description"/>
</parameterMap>
<statement id="insertProduct" parameterMap="insert-product-param">
       insert into PRODUCT(PRD_ID,PRD_DESCRIPTION) value(?,?)
</statement>
parameter map的两个参数按次序匹配sql语句中的值符号(?)
第一个"?"  <======>  id
第二个"?"  <======>description

5.Inline Parameter:可以嵌在mapped statement内部使用。例如:
<statement id="insertProduct">
        insert into product(prd_id,prd_description) values (#id#,#description#)
</statement>
内嵌的参数是#id#和#description#。每个参数代表一个javabean属性,用于给sql语句中相应
的位置赋值
6.resultClass:java类的全限定名。只要javabean的属性名称和resultset的列名匹配
<statement id="" parameterClass="" resultClass="全限定名类名">
 select pre_id as id,
 pre_first_name as firstName,
 pre_last_name as lastName,
 pre_bitrh_date as birthDate,
 pre_weight_kg as weightlnKilograms,
 pre_heigth_m as heightInMethers
 from person
 where pre_id=#value#
</statement>
当执行mapped statement时,person类将被初始化,从结果集中得到的列值将根据属性名和列名
映射成对象的属性值
7.resultMap:使用resultMap可以控件数据如何从结果集中取出,以及哪一个属性匹配那一个字段
resultMap属性可以允许指定字段的类型,null的替代值复杂类映射(包括其他javabean,集合类型和基本类型包装类)
<resultMap id="get-product-result" class="com......Product">
           <result property="id" column="PRD_ID"/>
           <result property="description" column="prd_description"/>
</resultMap>
<statement id="getProduct" resultMap="get-product-result">
            select *from product
</statement>
通过resultMap的定义,查询语句得到的ResultSet被映射成Product对象。注意resultMap支持"select *",并不要求定义resultset所有返回字段的映射

 

iBatis2学习笔记:SqlMap的配置总结(18条)

iBatis2学习笔记:SqlMap的配置总结(18条)   本来我也不喜欢iBatis,那是因为我当时还不怎么会用它,现在我想说,iBatis是个好东西,不信你试试看。下面是我在项目实践...

ibatis源码学习2_初始化和配置文件解析

在ibatis整体设计和核心流程一文中,我们提到了ibatis框架的初始化过程,本文将深入分析ibatis框架的初始化和配置文件解析过程。本文使用的ibatis版本为2.3.4,不同版本间会略有差异。...
  • sjf8013
  • sjf8013
  • 2012年12月01日 14:03
  • 744

iBatis2学习笔记

  • 2009年02月08日 21:20
  • 135KB
  • 下载

[项目实战] ibatis +spring+struts2+jquery.autocomplete实现产品自动补全功能(二) 附带源码

这两天忙公司的项目,没有把项目的demo写出来。趁现在空闲,偷偷的写一下。 先上demo结构目录图: 大家看到了吧,项目层次分得很清楚。 config  是 spring和itatis的配置文件。接...

筑基ibatis2

完整版见https://jadyer.github.io/2011/04/05/ibatis-demo/
  • jadyer
  • jadyer
  • 2011年04月05日 23:26
  • 1280

Struts2+IBatis+ExtJS的JSON序列化异常

项目框架项目采用Spring+Struts2+IBatis+ExtJS,已经加入struts-json-plugin来整合Json。基本配置struts.xml: ...

spring+struts2+ibatis配置

1.web.xml文件 koubei-mobile-web log4jConfigLocation /WEB-INF/classes/log4j.properties //这里...

各种系统架构图及其简介(Spring+IBatis+Struts1+Struts2+Hibernate+Java EE+Oracle)

原文出处:http://space.itpub.net/6517/viewspace-609654 1.Spring架构图  Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。...

Struts2+Spring +ibatis 整合问题

SpringIbatisStruts2 index.jsp org.springframework.web.context.ContextLoaderList...

SSI(Struts2, Spring, iBatis)框架整合小结

MVC对于我们来说,已经不陌生了,它起源于20世纪80年代针对smalltalk语言的一种软件设计模式,现在已被广泛应用。近年来,随着java的盛行,MVC的低耦合性、高重用性、可维护性、软件工程的可...
  • zztp01
  • zztp01
  • 2011年12月23日 10:50
  • 463
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ibatis学习2
举报原因:
原因补充:

(最多只允许输入30个字)