[SpringBoot]xml文件里写SQL用resultMap标签

<!-- AdminLoginInfoVO getLoginInfoByUsername(String username); -->
<select id="getLoginInfoByUsername" resultMap="LoginInfoResultMap">
    SELECT
        ams_admin.id,
        ams_admin.username,
        ams_admin.password,
        ams_admin.enable,
        ams_permission.value
    FROM ams_admin
        LEFT JOIN ams_admin_role ON ams_admin.id=ams_admin_role.admin_id
        LEFT JOIN ams_role_permission ON ams_admin_role.role_id=ams_role_permission.role_id
        LEFT JOIN ams_permission ON ams_role_permission.permission_id=ams_permission.id
    WHERE
        username=#{username}
</select>

<!-- resultMap标签:指导MyBatis封装查询结果 -->
<!-- resultMap标签的id属性:自定义名称,也是select标签上使用resultMap属性的值 -->
<!-- resultMap标签的type属性:封装查询结果的类型的全限定名 -->
<resultMap id="LoginInfoResultMap"
           type="cn.tedu.csmall.passport.pojo.vo.AdminLoginInfoVO">
    <!-- id标签:配置主键的列与属性的对应关系 -->
    <!-- result标签:配置普通的列与属性的对应关系 -->
    <!-- collection标签:配置List集合类型的属性与查询结果中的数据的对应关系 -->
    <!-- collection标签的ofType属性:集合中的元素类型,取值为类型的全限定名 -->
    <id column="id" property="id"/>
    <result column="username" property="username"/>
    <result column="password" property="password"/>
    <result column="enable" property="enable"/>
    <collection property="permissions" ofType="String">
        <!-- constructor标签:通过构造方法来创建对象 -->
        <constructor>
            <!-- arg标签:配置构造方法的参数,如果构造方法有多个参数,依次使用多个此标签 -->
            <arg column="value"></arg>
        </constructor>
    </collection>
</resultMap>

解释:

 column表示的列 

  property表示属性,就是vo类里的属性

  对于集合的属性用collection标签。即collection标签:配置List集合类型的属性与查询结果中的数据的对应关系。

  collection标签需要配一个ofType标签,指定的是集合中的元素类型

 constructor标签:通过构造方法来创建对象, arg标签:配置构造方法的参数,如果构造方法有多个参数,依次使用多个此标签:

  把主键的result标签换成id标签,利于Mybatis框架去缓存查询结果,缓存查询结果的意思就是从数据库把结果查出来以后不销毁,下次还要查就直接把结果给你,以此提高数据的访问效率。所以主键用id,一般的用result,List集合用collection。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBootresultMap是Mybatis一个重要概念,用于将查询结果集映射到Java对象上。通过使用resultMap,我们可以定义查询结果与Java对象的映射关系,方便数据的读取和处理。在SpringBoot整合Mybatis,我们可以通过配置mapper.xml文件来定义resultMap的映射规则。 要使用resultMap,首先需要在mapper.xml定义一个resultMap元素,并指定其id、type和映射关系。在resultMap内部,我们可以使用id、result、association、collection等元素来定义映射规则。其,id元素用于指定主键字段的映射关系,result元素用于指定非主键字段的映射关系,association元素用于指定一对一关联关系的映射规则,collection元素用于指定一对多关联关系的映射规则。 一般而言,我们会在mapper.xmlSQL语句,并使用resultMap来映射查询结果。在SQL语句,我们可以使用select语句来查询数据,并通过resultMap来将查询结果映射到Java对象上。 例如,假设我们有一个User类,其包含id、name、age等属性。我们可以在mapper.xml定义一个resultMap来将查询结果映射到User对象上。具体的映射规则可以根据实际需求来定义。 <resultMap id="userMap" type="com.example.User"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="age" property="age" /> </resultMap> 然后,我们可以在SQL语句使用resultMap来映射查询结果。 <select id="getUser" resultMap="userMap"> SELECT * FROM user </select> 这样,当我们执行getUser查询时,Mybatis会根据resultMap的定义将查询结果映射到User对象上,并返回一个包含User对象的List集合。 总之,resultMapSpringBoot整合Mybatis非常重要的概念,用于将查询结果映射到Java对象上,方便数据的读取和处理。我们可以通过在mapper.xml定义resultMap来指定映射规则,并在SQL语句使用resultMap来映射查询结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值