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.urlspring.datasource.usernamespring.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>节点一起使用
小结
需要掌握以上所有内容
|