Mybatis框架
关于Mybatis框架
Mybatis框架主要实现了简化数据库编程。
依赖项
通常,使用Mybatis框架时,需要添加依赖:
mybatis :Mybatis框架mybatis-spring :Mybatis整合Springmysql-connector-java :数据库依赖项spring-jdbc :Spring整合JDBC
除此以外,通常还会添加:
spring-test :执行测试commons-dbcp / druid 等:数据库连接池
在Spring Boot项目中,只需要添加mybatis-spring-boot-starter 和mysql-connector-java 即可,测试时,另外添加spring-boot-starter-test 。
基本配置
在Spring Boot项目中,在application.properties 中配置:
spring.datasource.url spring.datasource.username spring.datasource.password
然后,需要在配置类上使用@MapperScan 指定Mapper接口所在的包,在启动项目时,Mybatis会扫描此包,并找到相关的接口,自动生成这些接口的代理对象。
另外,还需要在application.properties 中配置mybatis.mapper-locations 属性,用于指定XML文件的位置。
使用Mybatis实现数据库编程
使用Mybatis实现数据库编程主要:
- 设计Mapper接口中的抽象方法
- 配置抽象方法映射的SQL语句
关于抽象方法:
- 返回值类型:增删改使用
int ,查询只需要保证返回值类型足够装得下查询结果即可 - 方法名称:自定义,建议参考阿里的规范
- 参数列表:取决于需要执行的SQL语句中的参数,如果SQL语句中只有1个参数,直接声明为方法的参数即可,如果有多个参数,且这些参数具有相关性,则应该封装,并使用封装的类型作为方法的参数,如果多个参数没有相关性,则一一声明为方法的参数,并且,为每个参数添加
@Param 注解
- 在某些集成环境中,多个参数也可以不添加
@Param
关于配置SQL语句:
-
可以使用@Insert 等节点配置SQL语句,但是不推荐,推荐使用XML文件来配置SQL语句 -
必须在<mapper> 上配置namespace 属性,用于指定对应的接口 -
使用<insert> 等节点配置SQL语句,每个节点必须配置id 属性,用于指定对应的抽象方法 -
在配置<insert> 时,如果表的id是自动编号的,则应该配置useGeneratedKeys 和keyProperty 属性,以获取自动编号的id -
在配置<select> 时,必须配置resultMap 或resultType 这2个属性中的某1个 -
可以使用<sql> 节点封装SQL语句片段,并使用<include> 节点进行引用,通常,使用<sql> 封装字段列表 -
使用<resultMap> 节点用于指导Mybatis封装查询结果 -
使用动态SQL的<foreach> 可以实现对数组或List 集合类型的参数的遍历 -
使用动态SQL的<if> 可以实现根据参数决定SQL语句中是否包含某个片段,用于处理更新数据的操作时,通常结合<set> 节点一起使用
小结
需要掌握以上所有内容
|