一.数据访问的 使用
1. Sql使用自定义
- 导入JDBC依赖
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-jdbcartifactId>
dependency>
- 导入了数据源,导入了事务,jdbc操作
少了数据库驱动,官方不知道我们要操作数据库 - 导入mysql驱动(数据库版本和驱动版本对应)
官方有了版本仲裁8. 版本如果需要5的版本
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
dependency>
<mysql.version>8.0.22mysql.version>(maven的就近依赖原则)
<version>5.1.49version>-->(maven属性就近优先原则)
- 分析自动配置
- 自动配置的类
DataSourceAutoConfiguration : 数据源的自动配置
底层自动配置了数据源HikariDataSource
DataSourceTransactionManagerAutoConfiguration: 事务管理器的自动配置
JdbcTemplateAutoConfiguration: JdbcTemplate的自动配置,可以来对数据库进行crud - 修改数据源相关的配置:spring.datasource
spring.jdbc来修改JdbcTemplate
- 在配置文件中配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/ssm
username: root
password: abc123
driver-class-name: com.mysql.jdbc.Driver
- 整合druid数据源
>
>com.alibaba>
>druid>
>1.0.31>
>
//@Configuration
public class MyDataSourceConfig {
//属性和配置文件绑定()
@ConfigurationProperties("spring.datasource")
//默认的自动配置数据源判断容器中没有数据源(此时已有数据源)
@Bean
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
// druidDataSource.setUrl();
// druidDataSource.setUsername();
return druidDataSource;
}
2.使用官方starter
- 引入starter
>
>com.alibaba>
>druid-spring-boot-starter>
>1.1.17>
>
- 判断引入了什么
- DruidSpringAopConfiguration 监控springBean组件的配置
spring.datasource.druid.aop-patterns配置项 - DruidStatViewServletConfiguration.class, 监控页的配置:spring.datasource.druid.stat-view-servlet;默认开启
- DruidWebStatFilterConfiguration.class, web监控配置;spring.datasource.druid.web-stat-filter;默认开启
- DruidFilterConfiguration.class}) 所有Druid自己filter的配置
- 配置功能即可
spring:
datasource:
url: jdbc:mysql://localhost:3306/db_account
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
druid:
aop-patterns: com.atguigu.admin.*
filters: stat,wall
stat-view-servlet:
enabled: true
login-username: admin
login-password: admin
resetEnable: false
web-stat-filter:
enabled: true
urlPattern: /*
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
filter:
stat:
slow-sql-millis: 1000
logSlowSql: true
enabled: true
wall:
enabled: true
config:
drop-table-allow: false
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
二.整合mybatis xml
- 引入starter
>
>org.mybatis.spring.boot>
>mybatis-spring-boot-starter>
>2.1.4>
>
- 配置模式
- 以前:全局配置文件,sqlsessionFactory,sqlsession,mapper
- 导入starter,看帮我们配置了什么
- mybatis配置项绑定类最后prefix=mybatis.xxxx
- 给容器中放了sqlsessionFactory
- 自动配置了sqlsessionTemplate组合了sqlsession
- 配置了AutoConfiguredMapperScannerRegistrar
- mapper:写的操作mybatis的接口标注了@mapper就会自动配置进来
- 具体使用
- 导入mybatis官方starter
- 指定全局配置文件位置和sql映射位置
mybatis:
config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mybatis/mapper/*.xml
- 编写mapper接口(@mapper注解),绑定xml映射文件
- 在springboot全局配置文件中声明(同2),即可以指定mapper配置文件的位置,也可以指定mybatis全局配置文件的信息(建议不写全局配置文件,直接配置在mybatis.configuration标签下)
三.整合mybatis注解
- 准备表准备javabean封装属性
- 准备mapper接口(@mapper)
- 也可以再用xml来绑定方法
四.最佳实战
- 引入mybatis-starter
- 配置application.yaml中的mapper-location位置即可
- 编写mapper接口并标注@mapper注解
- 简单方法 直接注解方式
- 复杂方法 编写mapper.xml绑定映射