Mybatis映射器select

Posted zhichun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis映射器select相关的知识,希望对你有一定的参考价值。

Mybatis映射器select

简单的select元素的应用

  • id 配合Mapper的全限定名,联合成为一个唯一的标示

  • parameterType 表示这条SQL接受的参数类型

  • resultType表示这条SQL返回的结果类型

  • #{firstName} 是被传递进去的参数

<select id="countUserByFirstName" parameterType="string" resultType="int">
    select count(*) total from t_user where user_name like contact(#{firstName},'%')
</select>

与映射文件匹配的接口方法程序:

public Integer countUserByFirstName(String firstName);

传递多个参数

使用map接口传递参数

public List<Role> findRolesByMap(Map<String,Object> parameterMap);

SQL中配置的方法为:

<select id="findRolesByMap" parameterType="map" resultType="role">

    select id, role_name as roleName, note from t_role where role_name like contact('%',#{roleName},'%')
and note like concat('%',#{note},'%')

</select>

代码清单:

RoleMapperroleMapper = sqlSession.getMapper(RoleMapper.class);

Map<String,Object> parameterMap = new HashMap<String,Object>();

parameterMap.put("roleName",1);

parameterMap.put("note",1);

List<Role> roles = roleMapper.findRolesByMap(parameterMap);

使用注解传递多个参数

public List<Role> findRolesByAnnotation(@Param("roleName") String rolename, @Param("note") String note)

此时并不需要给出parameterType属性,让Mybatis自动探索

通过Java Bean传递多个参数

public class RoleParams
{
    private String roleName;
    private String note;
}

接口方法定义:

public List<Role> findRolesByBean(RoleParams roleParam);

修改映射文件:

<select id="findRolesByBean" parameterType="com.learn.ssm.chapter5.param.RoleParams" resultType="role">
    select id, role_name as roleName, note from t_role where role_name like concat('%',#{roleName},'%') and note like concat ('%',#{note},'%')
</select>

引入Java Bean定义的属性作为参数

RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);

RoleParams roleParams = new RoleParams();

roleParams.setRoleName("1");

roleParams.setNote("1");

List<Role> roles = roleMapper.findRolesByBean(roleParams);

对于返回值

使用resultMap映射结果集

<mapper namespace="com.learn.ssm.chapter5.mapper.RoleMapper">
    <resultMap id="roleMap"  type="role">
        <id property="id" column="id"/>
        <result property="roleName" column="role_name"/>
        
        <result property="note" column="note"/>
        
    </resultMap>
    
    <select id="getRoleUseResultMap" parameterType="long" resultMap="roleMap">
        select id, role_name, note from t_role where id = #{id}
    </select>
</mapper>

以上是关于Mybatis映射器select的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis映射器总结

MyBatis 无法识别映射器 xml 文件 - 无效的绑定语句(未找到)

Mybatis增删改查

Mybatis 强大的结果映射器ResultMap

纯 Java MyBatis 映射器?

MyBatis 生成器 - 生成映射器实现