mybatis注意事项

1. mybatis中查询语句中的resultType的对象的属性在select语句中可以没有对应。

        例如:

         SELECT
            DISTINCT f.city_name                  as cityName,
            ifnull(c.business_type,'未知业务类型')        as businessType,
            ''                                    as parentCityName,
            ''                                    as aliasName

 其中parentCityName,aliasName这两个属性在resultType的对象中存在,那么,即使我们在结果集中不用这两个属性,可以给它们赋值,此例子中给了它们空字符串。也可以不给他们赋值。

 

2. mybatis中查询语句中的resultType的对象的属性类型与DB中的该属性的数据类型可以不一样。

   例如:

    SELECT
            f.no                  as number

 其中no字段在DB中的类型为int(4),  而结果对象中的number属性类型为String,这是合法的,会自动转换为String类型的。(在可以装换的情况下是可以的。但是如果字符串装换为Date类型,这个是不能转换的。)

 

3. mapper.xml中的<mapper namespace="org.wlj.project.MyMapper">,是为了反射找到与之对应的java接口。

如:

package org.wlj.project;
import java.io.Serializable;
import java.util.List;

public interface MyMapper
{
    /**
     * @TODO 方法描述
     * @return
     */
    List<City> findAllCitys();
    
    /**
     * @TODO 方法描述
     * @param paramsVO
     * @return
     */
    List<Object> findUsers(Serializable paramsVO);
}

 

4. mybatis的parameterType的对象的属性都要能在mapper.xml中的语句中,可以有没有用到的属性名。但是用到的属性类型应该与DB中的相应字段类型保持一致。

 如:

                <when test="intType == 1">
                    f.detail_stat_type = #{intType}

     其中detail_stat_type类型为int(4),  intType也应该为Integer或long类型,但是不能为String类型的。

 

 

 

 

 

 

 

 

 

 

posted @ 2015-04-16 12:08  wenlj2000  阅读(202)  评论(0编辑  收藏  举报