SpringBoot入门(九)数据访问

目录

第八章 SQL

8.1 数据源的自动配置-HikariDataSource

8.1.1 导入JDBC场景

8.1.2 分析自动配置

8.1.3 修改配置项

8.1.4 测试

8.2 使用Druid数据源

8.2.1 druid官方github地址

8.2.2 自定义方式

        8.2.2.1 创建数据源

        8.2.2.2 StatViewServlet

        8.2.2.3 StatFilter

8.2.3 使用官方starter方式

        8.2.3.1 引入druid-starter

        8.2.3.2 分析自动配置

        8.2.3.3 配置示例

8.3 整合MyBatis操作

8.3.1 配置模式(推荐)

8.3.2 注解模式

8.3.3 混合模式

8.4 整合MyBatis-Plus完成CRUD

8.4.1 什么是MyBatis-Plus

8.4.2 整合MyBatis-Plus

8.4.3 CRUD功能

第九章 NoSQL

9.1 Redis自动配置

9.2 RedisTemplate与Lettuce

9.3 切换至Jedis


第八章 SQL

8.1 数据源的自动配置-HikariDataSource

8.1.1 导入JDBC场景

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>

   导入场景后,发现官方没有导入数据库驱动,因为官方不知道接下来我们需要操作哪种数据库。数据库驱动需要自己手动导入。

   导入MySQL驱动后,官方会自动仲裁版本。但是要注意数据库版本和驱动版本要对应

<mysql.version>8.0.28</mysql.version>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

   想要修改版本的方法:

        1.直接依赖引入具体版本(maven的就近依赖原则)

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
</dependency>

        2.重新声明版本(maven的属性的就近优先原则)

<properties>
    <java.version>1.8</java.version>
    <mysql.version>5.1.49</mysql.version>
</properties>

8.1.2 分析自动配置

  • DataSourceAutoConfiguration:数据源的自动配置
    • 修改数据源相关的配置:spring.datasource
    • 数据库连接池的配置,是自己容器中没有DataSource才自动配置的
    • 底层配置好的连接池是:HikariDataSource

  • DataSourceTransactionManagerAutoConfiguration:事务管理器的自动配置
  • JdbcTemplateAutoConfiguration:JdbcTemplate的自动配置,可以来对数据库进行crud
    • 可以修改这个配置项@ConfigurationProperties(prefix = "spring.jdbc") 来修改JdbcTemplate
    • @Bean@Primary JdbcTemplate,容器中有这个组件
  • JndiDataSourceAutoConfiguration:jndi的自动配置
  • XADataSourceAutoConfiguration:分布式事务相关的

8.1.3 修改配置项

   配置yaml文件:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_account
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

8.1.4 测试

@Slf4j
@SpringBootTest
class Boot05WebAdminApplicationTests {

    @Autowired
    JdbcTemplate jdbcTemplate;


    @Test
    void contextLoads() {

//        jdbcTemplate.queryForObject("select * from account_tbl")
//        jdbcTemplate.queryForList("select * from account_tbl",)
        Long aLong = jdbcTemplate.queryForObject("select count(*) from account_tbl", Long.class);
        log.info("记录总数:{}",aLong);
    }

}

8.2 使用Druid数据源

8.2.1 druid官方github地址

GitHub - alibaba/druid: 阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池

   整合第三方技术的两种方式:

        1.自定义

        2.找场景starter

8.2.2 自定义方式

8.2.2.1 创建数据源

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.17</version>
</dependency>

<!--之前的做法-->

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        destroy-method="close">
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="maxActive" value="20" />
        <property name="initialSize" value="1" />
        <property name="maxWait" value="60000" />
        <property name="minIdle" value="1" />
        <property name="timeBetweenEvictionRunsMillis" value="60000" />
        <property name="minEvictableIdleTimeMillis" value="300000" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />
        <property name="poolPreparedStatements" value="true" />
        <property name="maxOpenPreparedStatements" value="20" />

   现在定义一个配置类:

public class MyDataSourceConfig {
    @ConfigurationProperties("spring.datasource")
    @Bean
    public DataSource dataSource(){
        DruidDataSource druidDataSource = new DruidDataSource();
        //所有的属性也可以从配置文件中获取
        return druidDataSource;
    }
}

8.2.2.2 StatViewServlet

   Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。

   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值