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类型的。