返回值
字段名大写问题
mybatis如果不做区分大小写的设置的话,默认是不会区分大小写的,执行出的sql字段全部大写。
- 加上字段别名加上双引号
Select name as "name" from v_zhyl_zxzf_hqyzflb
- 返回字段映射到实体类型:
以“com.demo.pojo.User”为例:设置select语句的返回类型为
<select resultType="com.demo.pojo.User"></select>
- 返回字段使用resultMap
select语句中的字段名称要和map中的对应上,
<resultMap id="mapDemo" type="java.util.map">
<result column="userName" property="userName" />
<result column="userAge" property="userAge" />
</resultMap>
在select语句中设置返回map类型:
<select resultMap="mapDemo"></select>
参考:mybatis用Map返回的字段全变大写的问题_k524274865的博客-优快云博客
mybatis-查询返回的map中部分字段不区分大小写_查询sql用map接收的字段都是小写的吗_w2006009的博客-优快云博客
返回map
<!-- 返回HashMap结果 类型-->
<!-- 如果想返回JavaBean,只需将resultType设置为JavaBean的别名或全限定名 -->
<!-- TypeAliasRegistry类初始化时注册了一些常用的别名,如果忘记了别名可以在这里面查看 -->
<select id="selectBlogRetHashMap" parameterType="int" resultType="map">
SELECT id AS "id", title AS "title", content AS "content" FROM Blog WHERE id = #{id}
</select>
insert ,delete,update操作返回值
操作 | 返回类型 | 返回值意义 |
insert | int | 插入的数据的条数(失败返回的是exception) |
delete | int | 删除的数据的条数(失败返回的是exception) |
注:update 操作明确的返回受影响的记录条数,JDBC URL添加useAffectedRows=true
传参
传递多个参数
顺序传参
#{}
里面的数字代表你传入参数的顺序,索引从0开始
public List<XXXBean> getXXXBeanList(String xxId, String xxCode);
<select id="getXXXBeanList" resultType="XXBean">
select t.* from tableName where id = #{0} and name = #{1}
</select>
@Param注解传参
#{}
里面的名称对应的是注解@Param
括号里面修饰的名称。
注意,使用了@param注解的,在mapper.xml不加parameterType。
public List<XXXBean> getXXXBeanList(@Param("id")String id, @Param("code")String code);
<select id="getXXXBeanList" resultType="XXBean">
select t.* from tableName where id = #{id} and name = #{code}
</select>
Map封装多参数
#{}
里面的名称对应的是Map
里面的key名称。
public List<XXXBean> getXXXBeanList(HashMap map);
<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">
select 字段... from XXX where id=#{xxId} code = #{xxCode}
</select>
Java Bean传参
#{}
里面的名称对应的是User
类里面的成员属性。
<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
select * from user
where user_name = #{userName} and dept_id = #{deptId}
</select>