IbatiS OR 映射

阅读更多

相对Hibernate 等ORM 实现而言,ibatis的映射配置更为简洁直接,下面是一

个典型的配置文件。

"http://www.ibatis.com/dtd/sql-map-2.dtd">

       

             

             

             

             

             

             

         

 

       

       

 

 

       

            UPDATE t_user

                  SET

                    name=#name#,

                    sex=#sex#

                 WHERE id = #id#

           

 

可以看到,映射文件主要分为两个部分:模块配置和Statement配置。

 

模块配置包括:

typeAlias节点:定义了本映射文件中的别名,以避免过长变量值的反复书写,此例中通过

typeAlias节点为类"com.ibatis.sample.User"定义了一个别名"user",这样在本配置文件的其他部分,需要引用"com.ibatis.sample.User"类时,只需以其别名替代即可。

 

cacheModel节点    定义了本映射文件中使用的Cache机制:

         

         

         

这里申明了一个名为"userCache"的cacheModel,之后可以在Statement申明中对其进行引用:

 

 

    [parameterClass="some.class.Name"]

    [resultClass="some.class.Name"]

    [parameterMap="nameOfParameterMap"]

    [resultMap="nameOfResultMap"]

    [cacheModel="nameOfCache"]

>

    select * from t_user where sex = [?|#propertyName#]

    order by [$simpleDynamic$]

 

 

Insert:

    [parameterClass="some.class.Name"]

    [parameterMap="nameOfParameterMap"]

>

insert into t_user   (name,sex)

values

([?|#propertyName#],[?|#propertyName#])

 

 

Update

     [parameterClass="some.class.Name"]

     [parameterMap="nameOfParameterMap"]

>

UPDATE t_user

    SET

        name=[?|#propertyName#],

        sex=[?|#propertyName#]

    WHERE id = [?|#propertyName#]

 

Delete:

     [parameterClass="some.class.Name"]

     [parameterMap="nameOfParameterMap"]

>

     delete from t_user     where id = [?|#propertyName#]

 

 

其中以“[]”包围的部分为可能出现的配置栏目。

 

parameterClass:参数类。指定了参数的完整类名(包括包路径)。可通过别名避免每次重复书写冗长的类名。

 

resultClass:结果类。指定结果类型的完整类名(包括包路径)可通过别名避免每次重复书写冗长的类名。

 

parameterMap:参数映射,需结合parameterMap节点对映射关系加以定义。

对于存储过程之外的statement而言,建议使用parameterClass作为参数配置方式,一方面避免了参数映射配置工作,另一方面其性能表现也更加出色。

 

cacheModel:statement对应的Cache模块。

 

resultMap:结果映射,需结合resultMap节点对映射关系加以定义。

 

你可能感兴趣的:(IbatiS,OR,映射)