• 8、SpringBoot整合JDBC


    第一种,通过自定义配置文件方式配置数据源信息

    添加相关依赖

    <!--thymeleaf启动器-->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!--JDBC启动器-->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!--mysql驱动器坐标,用于操作数据库-->
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency>
    <!--Druid数据源依赖-->
    <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid</artifactId>
       <version>1.1.12</version>
    </dependency>
    

    jdbc.properties,配置数据源

    #添加对数据库的一些链接信息,因为数据源是要依赖于数据库连接信息去创建connection的
    jdbc.driverClassName=com.mysql.jdbc.Driver
    #userUnicode是否使用unicode字符集,characterEncoding字符编码,useSSL是否使用SSL这种连接方式对数据库进行连接,该方式安全性高
    jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
    jdbc.username=root
    jdbc.password=12345
    

    jdbcConfiguration,引入数据源信息,并创建Druid连接池

    @Configuration
    @PropertySource("classpath:/jdbc.properties") //加载指定的Properties配置文件
    public class jdbcConfiguration {
        @Value("${jdbc.driverClassName}")
        private String dirverClassName;
        @Value("${jdbc.url}")
        private String url;
        @Value("${jdbc.username}")
        private String username;
        @Value("${jdbc.password}")
        private String password;
        /**
         * 实例化Druid
         */
        @Bean
        public DataSource getDataSource(){
            //创建Druid连接池
            DruidDataSource source = new DruidDataSource();
            source.setPassword(this.password);
            source.setUsername(this.username);
            source.setUrl(this.url);
            source.setDriverClassName(this.dirverClassName);
            return source;
        }
    }
    

    Controller测试有没有数据源信息

    @Controller
    public class UsersController {
        @Autowired
        private DataSource dataSource;
    
        @GetMapping("/showInfo")
        public String showInfo(){
            return "OK";
        }
    }
    

    第二种,通过@ConfigurationProperties注解配置数据源

    POM文件

    <!--thymeleaf-->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!--jdbc-->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!--mysql连接-->
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>5.1.38</version>
    </dependency>
    
    
    <!--Druid-->
    <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid</artifactId>
       <version>1.1.12</version>
    </dependency>
    

    配置类

    @Configuration
    public class jdbcConfiguration {
    
        @Bean
        //该注解是通过set方法将配置信息传入到对象的属性中,通过对象的属性名将配置信息中对应的属性注入进来
        //该注解作用于方法上时就不需要@EnableConfigurationProperties注解了,只有在该注解作用于类上并用于读取配置信息时才需要用到
        @ConfigurationProperties(prefix = "jdbc")
        public DataSource getDataSource(){
            DruidDataSource source = new DruidDataSource();
            source.setUsername(); 通过该set方法去配置文件中查找jdbc为前缀,属性名为username的属性,将其注入到source对象的username属性中
            source.setPassword();通过该set方法去配置文件中查找jdbc为前缀,属性名为password的属性,将其注入到source对象的password属性中
            source.setUrl();通过该set方法去配置文件中查找jdbc为前缀,属性名为url的属性,将其注入到source对象的url属性中
            source.setDriverClassName();通过该set方法去配置文件中查找jdbc为前缀,属性名为dirverClassName的属性,将其注入到source对象的dirverClassName属性中
            return source;
        }
    }
    

    controller

    @Controller
    public class UsersController {
    
        @Autowired
        DataSource dataSource;
    
        @GetMapping("/showInfo")
        public String show(){
            return "ok";
        }
    }
    

    第三种,通过SpringBoot配置文件配置数据源

    之前的配置方式是外部文件配置,或application文件配置

    • SpringBoot1.0时代,spring-boot-starter-jdbc默认使用org.apache.jdbc.pool,DataSource作为数据源
    • SpringBoot2.0时代,spring-boot-starter-jdbc默认使用com.zaxxer.hikariDataSource作为数据源

    使用SpringBoot默认的HikariDataSource数据源

    spring.datasource.url=jdbc:mysql://localhost:3306/test?userUnicode=true&characterEncoding=utf-8&userSSL=false
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.username=root
    spring.datasource.password=12345
    

    controller

    @RestController
    public class UsersController {
    
        @Autowired
        private DataSource dataSource;
    
        @GetMapping("/showInfo")
        public String showInfo(){
    
            return this.dataSource.getClass().getPackage().toString();
        }
    }
    

    如果想切换成Druid数据源添加如下配置

    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    
  • 相关阅读:
    elementUI布局,响应式布局实现一行5列或7列布局
    WPF中Popup控件的使用
    ItemControl条目类控件使用Index
    WPF PasswordBox控件使用
    C#调用外部程序
    WPF系统级Converter
    WPF全局异常和自定义异常
    Grid设置共享尺寸组进行联动
    软件测试技术复习提纲
    Mysql环境变量的配置(详细图解)
  • 原文地址:https://www.cnblogs.com/Ryuichi/p/13449917.html
Copyright © 2020-2023  润新知