Mybatis学习笔记(1)
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"
这种方式开发效率较高,但是执行效率相对于第一种方式较低。
The steps you take don't need to be big,they just need to take you in the right direction.