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是个好东西,不信你试试看。下面是我在项目实践...

iBatis2学习笔记

  • 2009-02-08 21:20
  • 135KB
  • 下载

spring 3.0 + ibatis 2 整合

一、需要用到的包 二、 Suppliers.java                    ...
  • w__yi
  • w__yi
  • 2012-04-24 17:19
  • 2206

flex3+struts 1.3+spring+ibatis 2.x整合代码实例

flex3+struts 1.3+spring+ibatis 2.x整合代码实例,代码下载地址:http://www.zuidaima.com/share/1778657261997056.htm

from ibatis2.x to mybatis 3.x

This article is from the Official Website !   This page provides some information that is useful...

iBatis2--SqlMap的配置总结

SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间:   ,在此空间外要引用此空间的元素,则需要加上命名空间名。   2、实体的别名:

iBatis2 SqlMap中常用sql语句

本来我也不喜欢iBatis,那是因为我当时还不怎么会用它,现在我想说,iBatis是个好东西,不信你试试看。下面是我在项目实践中对iBatis的一个小总结,希望帮助众多在疲于iBatis编码而无暇思考...

spring2.5 + struts2 + ibatis2.3.4 框架整合开发

这里主要介绍一下spring2.5+struts+ibatis2.3.4所需要的jar包文件 spring所需包: —————————————————————————————— dist\spr...

Struts2+ibatis+dwz 框架实现uploadify上传文件

下载js包 (3.2版本) 下载地址:http://www.uploadify.com/download/ 解压后文件: jsp页面 .fileQueue li{margin:5px aut...

Struts2+Spring2.5+ibatis+ExtJS3.1 基于注解框架搭建

1、引入相应的包:查看以下图片 2、 jdbc.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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