日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

016-Spring Boot JDBC

發布時間:2023/12/6 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 016-Spring Boot JDBC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、數據源裝配

通過查看代碼可知,默認已裝配了數據源和JdbcTemplate

System.out.println(context.getBean(DataSource.class)); System.out.println(context.getBean(JdbcTemplate.class));

1.1、環境搭建

主要是pom引用:spring-boot-starter-jdbc、增加數據庫驅動

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lhx.spring</groupId><artifactId>springboot-web</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springboot-web</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.source>1.8</maven.compiler.source></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.9.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency></dependencies> </project> View Code

查看spring-boot-autoconfigure-1.5.9.RELEASE.jar包下的org.springframework.boot.autoconfigure.jdbc下的DataSourceProperties其實所有的都是類似的配置

@ConfigurationProperties(prefix = "spring.datasource") public class DataSourcePropertiesimplements BeanClassLoaderAware, EnvironmentAware, InitializingBean {

可以看到默認讀取spring.datasource開頭的配置。

1.2、配置

spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot spring.datasource.username=root spring.datasource.password=root

1.3、使用

public static void main(String[] args) throws SQLException {ConfigurableApplicationContext context = SpringApplication.run(App.class, args);dataSource = context.getBean(DataSource.class);Connection connection = dataSource.getConnection();System.out.println(connection.getCatalog());}

二、JdbcTemplate

在配置好基本配置后,JdbcTemplate就可以使用了

@Repository public class ProductDao {@Autowiredprivate JdbcTemplate jdbcTemplate;public void addProdcut(String value) {String sql = "insert into product(pname) values('" + value + "')";jdbcTemplate.execute(sql);} } View Code

調用

public class App {public static void main(String[] args) throws SQLException {ConfigurableApplicationContext context = SpringApplication.run(App.class, args);context.getBean(ProductDao.class).addProdcut("mp3");connection.close();} } View Code

三、切換數據源

System.out.println(context.getBean(DataSource.class));

查看到使用的是默認提供的:org.apache.tomcat.jdbc.pool.DataSource數據源

方式一、排除添加切換

1》排除掉tomcat-jdbc

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><exclusions><exclusion><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId></exclusion></exclusions></dependency> View Code

2》添加新的數據源

<dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></dependency> View Code

方式二、type配置數據源切換

3.2.1、原理查看

查看spring-boot-autoconfigure-1.5.9.RELEASE.jar包下的org.springframework.boot.autoconfigure.jdbc下的DataSourceProperties的配置

使用type指定【private Class<? extends DataSource> type;】在application.properties中

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

默認支持以下幾種數據源類型,查看spring-boot-autoconfigure-1.5.9.RELEASE.jar包下的org.springframework.boot.autoconfigure.jdbc下的DataSourceAutoConfiguration

DataSourceConfiguration.Tomcat.class DataSourceConfiguration.Hikari.class DataSourceConfiguration.Dbcp.class DataSourceConfiguration.Dbcp2.class DataSourceConfiguration.Generic.class

3.2.2、具體步驟

1》添加對應數據源pom

<dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></dependency> View Code

2》使用配置

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

3.3、配置自定義數據源

1》添加POM依賴

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

2》、增加DBConfiguration配置類

package com.lhx.spring.springboot_web;import javax.sql.DataSource;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.core.env.Environment;import com.alibaba.druid.pool.DruidDataSource;@SpringBootConfiguration public class DBConfiguration {@Autowiredprivate Environment env;@Beanpublic DataSource createDataSource() {DruidDataSource source = new DruidDataSource();source.setUrl(env.getProperty("spring.datasource.url"));source.setUsername(env.getProperty("spring.datasource.username"));source.setPassword(env.getProperty("spring.datasource.password"));source.setDriverClassName(env.getProperty("spring.datasource.driverClassName"));return source;} } View Code

四、事務

4.1、配置開啟

1、在入口app增加注解

@EnableTransactionManagement

2、在需要事務的公有方法上添加注解

@Transactional

示例

@Transactionalpublic void addProdcutBatch(String... names) throws Exception {for (String name : names) {String sql = "insert into product(pname) values('" + name + "')";jdbcTemplate.execute(sql);if ("".equals("")) {throw new NullPointerException();}}}

注意:spring事務,默認支持運行時異常,即RunTimeException,非運行時異常不會回滾

4.2、設置針對哪些異常使用事務

默認是運行時

設置所有異常

@Transactional(rollbackFor=Exception.class)

設置哪些異常不回滾

@Transactional(noRollbackFor=NullPointerException.class)

?

注意點:

1、要想使用事務生效,被調用的方法必須有Transactional 注解,對于內部調用方法有無注解無影響

2、需要數據庫支持事務。

?

總結

以上是生活随笔為你收集整理的016-Spring Boot JDBC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。