首页 > 技术文章 > Mybatis学习笔记(1)

ethan-37 2020-04-10 00:09 原文

CRUD操作
1.从实体类参数中取值 #{属性名}

select * from user where username = #{username}

2.当sql语句只有一个参数且参数类型是基本类型或基本类型包装类时,大括号(#{占位符})中的占位符可以随意写(id/userid/uid/...)。
3.由多个对象(如User,Dept)组成一个查询条件时,使用QueryVo把多个对象作为QueryVo的属性封装起来.
  查询时sql中查询条件可以写为#{user.username}或#{dept.id}
4.实体类中属性名和数据库表中的列名不一致,
  1.可以使用在sql语句中起别名的方式解决问题。

select id as userId,name as userName from user

  如实体类属性名为userId,数据库表中对应的列名为id。sql语句可以写为"select id as userId from user"
  这种方式执行效率最高,但是开发效率较低
  2.也可以在mapper.xml文件中将属性名与列名,通过<resultMap>标签对应起来。

<resultMap id="userMap" type"User">
  <!-- 主键字段的对应-->
    <id property="userId" column="id"><>
    <!-- 非主键字段的对应-->
    <result property="userName" column="username"></result>
</resultMap>
<select resultMap="userMap">
     select * from user
</select>

  此时将之前的结果类型resultType="User" 改为 resultMap="userMap"
  这种方式开发效率较高,但是执行效率相对于第一种方式较低。

推荐阅读