- 用于简化JDBC的操作,直接在mybatis中编写sql,发送给数据库执行,然后返回结果
- 编写sql有注解和xml文件两种方法
- LocalDate类型对应数据表中的date类型
- LocalDateTime类型对应数据表中的datetime类型
- 预编译sql性能高,安全
- like拼接时使用concat('%','#{张}','%')
注解:
@Mapper
public interface EmpMapper{
@Delete("delete from tb where id = #{}")
public void delete(Integer id);
}
xml规范:
- 同包同名,xml文件的namespace属性和mapper接口的全限定名一致,接口方法与xml文件中对应标签的id一致,返回类型一致
动态sql:
背景:可能查询等条件不全,导致查询字段数量不一致
- 查询:if、where
- 更新:set
- 删除,遍历:foreach
- 通用:sql,include
数据封装:
- 实体类属性名和数据库查询返回的字段名不一致mybatis不会自动封装,可以通过在sql语句中as起别名,手动结果映射或开启驼峰命名
- 驼峰命名配置:
mybatis.configuration.map-underscore-to-camel-case=true
- 手动结果映射使用@Results和@Result
- 驼峰命名配置: