Mybatis
注解:@Mapper
- @Select:查询
- @Insert:插入
- @Update:更新
- @Delete:删除
- 参数占位符:#{} --- 执行时替换为?,生成预编译SQL,用于参数传递/${} --- 执行时替换为字符串,不生成预编译SQL,存在SQL注入风险,不建议使用, 一般用于表名字段名动态设置
- 传递多个参数时,可以使用对象来传递,对象的属性名必须和SQL语句中的参数名保持一致, 如果使用多个形参来传递参数,每个参数的属性名必须使用@Param注解指定,否则会报错(说明:基于官方骨架创建的springboot项目中,接口编译时会保留方法形参名,@Param注解可以省略 (可以直接#{形参名}))
XML映射配置文件(简单使用注解,复杂用xml)
- XML映射配置文件名称和Mapper接口一致,并且同包下
- XML映射配置文件的namespace属性和Mapper接口的全限定名保持一致
- XML映射配置文件SQL的id属性和Mapper接口的方法名保持一致,resultType和Mapper接口的方法返回值(如何是集合要写单条返回值类型)保持一致
- 注意:resultType属性只在select标签中使用,其他标签中不能使用
- 可以使用mybatis.mapper-locations属性来指定XML映射配置文件的位置
配置
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/xxx
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 切换数据库连接池(默认是Hikari连接池)
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 开启日志输出
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
写法
通过@Mapper注解,放置到接口上来进行注解(运行时生成实现类注入到IOC容器中)