亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring Boot 與 Kotlin 使用JdbcTemplate連接MySQL數據庫的方法

2024-07-13 10:17:05
字體:
來源:轉載
供稿:網友

之前介紹了一些Web層的例子,包括構建RESTful API、使用Thymeleaf模板引擎渲染Web視圖,但是這些內容還不足以構建一個動態的應用。通常我們做App也好,做Web應用也好,都需要內容,而內容通常存儲于各種類型的數據庫,服務端在接收到訪問請求之后需要訪問數據庫獲取并處理成展現給用戶使用的數據形式。

本文介紹在Spring Boot基礎下配置數據源和通過 JdbcTemplate 編寫數據訪問的示例。

數據源配置

在我們訪問數據庫的時候,需要先配置一個數據源,下面分別介紹一下幾種不同的數據庫配置方式。

首先,為了連接數據庫需要引入jdbc支持,在 build.gradle 中引入如下配置:

compile "org.springframework.boot:spring-boot-starter-jdbc:$spring_boot_version"

連接數據源

以MySQL數據庫為例,先引入MySQL連接的依賴包,在 build.gradle 中加入:

compile "mysql:mysql-connector-java:$mysql_version"

完整 build.gradle

group 'name.quanke.kotlin'version '1.0-SNAPSHOT'buildscript { ext.kotlin_version = '1.2.10' ext.spring_boot_version = '1.5.4.RELEASE' ext.springfox_swagger2_version = '2.7.0' ext.mysql_version = '5.1.21' repositories {  mavenCentral() } dependencies {  classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"  classpath("org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version")//  Kotlin整合SpringBoot的默認無參構造函數,默認把所有的類設置open類插件  classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlin_version")  classpath("org.jetbrains.kotlin:kotlin-allopen:$kotlin_version") }}apply plugin: 'kotlin'apply plugin: "kotlin-spring" // See https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-spring-compiler-pluginapply plugin: 'org.springframework.boot'jar { baseName = 'chapter11-6-1-service' version = '0.1.0'}repositories { mavenCentral()}dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" compile "org.springframework.boot:spring-boot-starter-web:$spring_boot_version" compile "org.springframework.boot:spring-boot-starter-jdbc:$spring_boot_version" compile "mysql:mysql-connector-java:$mysql_version" testCompile "org.springframework.boot:spring-boot-starter-test:$spring_boot_version" testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"}compileKotlin { kotlinOptions.jvmTarget = "1.8"}compileTestKotlin { kotlinOptions.jvmTarget = "1.8"}

在 src/main/resources/application.yml 中配置數據源信息

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

連接JNDI數據源

當你將應用部署于應用服務器上的時候想讓數據源由應用服務器管理,那么可以使用如下配置方式引入JNDI數據源。

如果對JNDI不是很了解的,請參考 https://baike.baidu.com/item/JNDI/3792442?fr=aladdin

spring.datasource.jndi-name=java:jboss/datasources/customers

使用JdbcTemplate操作數據庫

Spring的 JdbcTemplate 是自動配置的,你可以直接使用 @Autowired 來注入到你自己的bean中來使用。

舉例:我們在創建 User 表,包含屬性id,name、age,下面來編寫數據訪問對象和單元測試用例。

定義包含有插入、刪除、查詢的抽象接口UserService

interface UserService { /**  * 獲取用戶總量  */ val allUsers: Int? /**  * 新增一個用戶  * @param name  * @param age  */ fun create(name: String, password: String?) /**  * 根據name刪除一個用戶高  * @param name  */ fun deleteByName(name: String) /**  * 刪除所有用戶  */ fun deleteAllUsers()}

通過 JdbcTemplate 實現 UserService 中定義的數據訪問操作

import org.springframework.beans.factory.annotation.Autowiredimport org.springframework.jdbc.core.JdbcTemplateimport org.springframework.stereotype.Service/** * Created by http://quanke.name on 2018/1/10. */@Serviceclass UserServiceImpl : UserService { @Autowired private val jdbcTemplate: JdbcTemplate? = null override val allUsers: Int?  get() = jdbcTemplate!!.queryForObject("select count(1) from USER", Int::class.java) override fun create(name: String, password: String?) {  jdbcTemplate!!.update("insert into USER(USERNAME, PASSWORD) values(?, ?)", name, password) } override fun deleteByName(name: String) {  jdbcTemplate!!.update("delete from USER where USERNAME = ?", name) } override fun deleteAllUsers() {  jdbcTemplate!!.update("delete from USER") }}

創建對UserService的單元測試用例,通過創建、刪除和查詢來驗證數據庫操作的正確性。

/** * Created by http://quanke.name on 2018/1/9. */@RunWith(SpringRunner::class)@SpringBootTestclass ApplicationTests { val log = LogFactory.getLog(ApplicationTests::class.java)!! @Autowired lateinit var userService: UserService @Test fun `jdbc test"`() {  val username = "quanke"  val password = "123456"  // 插入5個用戶  userService.create("$username a", "$password 1")  userService.create("$username b", "$password 2")  userService.create("$username c", "$password 3")  userService.create("$username d", "$password 4")  userService.create("$username e", "$password 5")  log.info("總共用戶 ${userService.allUsers}")  // 刪除兩個用戶  userService.deleteByName("$username a")  userService.deleteByName("$username b")  log.info("總共用戶 ${userService.allUsers}") }}

上面介紹的JdbcTemplate只是最基本的幾個操作,更多其他數據訪問操作的使用請參考:JdbcTemplate API

通過上面這個簡單的例子,我們可以看到在Spring Boot下訪問數據庫的配置依然秉承了框架的初衷:簡單。我們只需要在pom.xml中加入數據庫依賴,再到application.yml中配置連接信息,不需要像Spring應用中創建JdbcTemplate的Bean,就可以直接在自己的對象中注入使用。

總結

以上所述是小編給大家介紹的Spring Boot 與 Kotlin 使用JdbcTemplate連接MySQL數據庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久www成人免费精品| 欧美野外wwwxxx| 亚洲字幕一区二区| 欧美视频中文字幕在线| 超碰精品一区二区三区乱码| 国产91成人video| 国产精品入口夜色视频大尺度| 日韩免费在线免费观看| 91久久精品久久国产性色也91| 亚洲美女激情视频| 日韩视频―中文字幕| 91精品久久久久久久久久另类| 国产偷国产偷亚洲清高网站| 日韩免费在线电影| 亚洲人成电影网| 久久久噜久噜久久综合| 97欧美精品一区二区三区| 国产精品久久av| 亚洲的天堂在线中文字幕| 亚洲小视频在线观看| 亚洲老司机av| 欧美日韩在线视频一区二区| 亚洲桃花岛网站| 自拍偷拍免费精品| 精品久久久久久中文字幕一区奶水| 欧美华人在线视频| 亚洲国产又黄又爽女人高潮的| 国产欧美日韩亚洲精品| 亚洲资源在线看| 8x海外华人永久免费日韩内陆视频| 亚洲综合成人婷婷小说| 日韩av在线导航| 久久视频精品在线| 亚洲国产精品va在看黑人| 国产精品人成电影| 欧美日韩国产在线看| 国产精品久久久久久久久久ktv| 亚洲成av人影院在线观看| 精品激情国产视频| 精品国产拍在线观看| 一本色道久久88精品综合| 久久综合免费视频影院| 欧美午夜片在线免费观看| 中文字幕久久久| 欧美成人四级hd版| 欧美电影免费观看高清| 欧美高清视频免费观看| 91在线网站视频| 国产成人精品视| 亚洲欧洲偷拍精品| 精品国产电影一区| 理论片在线不卡免费观看| 亚洲电影在线看| 国产精品视频在线播放| 成人av在线网址| 国产91精品久久久久久| 日韩av网站电影| 国产精自产拍久久久久久蜜| 亚洲国产高清自拍| 亚洲一区二区三区四区在线播放| 欧美一级大片视频| 91在线观看免费高清完整版在线观看| 国产精品久久久久久久app| 久久精品国产欧美亚洲人人爽| 成人黄色在线免费| 日韩欧美亚洲成人| 77777亚洲午夜久久多人| 精品中文字幕乱| 欧美性视频网站| 久久久久免费视频| 亚洲美女动态图120秒| 日韩不卡在线观看| 亚洲欧美中文在线视频| 91国语精品自产拍在线观看性色| 国产精品一区二区久久久| 九九热视频这里只有精品| 国产精品美女主播在线观看纯欲| 国产精品精品一区二区三区午夜版| 欧美性理论片在线观看片免费| 久久夜色精品国产亚洲aⅴ| 欧美黑人xxx| 成人免费午夜电影| 欧美日韩亚洲视频| 亚洲国产成人在线播放| 亚洲男人天堂九九视频| 亚洲天堂色网站| 亚洲最大av在线| 久久视频免费在线播放| 亚洲欧洲日本专区| 国产精品美女www爽爽爽视频| 久久激情视频免费观看| 91网站免费看| 国产视频精品免费播放| 精品久久在线播放| 亚洲精品suv精品一区二区| 日韩影视在线观看| 国产女人精品视频| 欧美高清视频在线播放| 亚洲成人激情在线| 久久精品人人做人人爽| 日韩美女免费线视频| 国产美女91呻吟求| 国产日韩在线精品av| 国产91精品网站| 国产成人福利网站| 亚洲国产成人在线播放| 91色在线观看| 国产主播欧美精品| 免费91在线视频| 日韩av电影免费观看高清| 国产精品久久久久aaaa九色| 日韩欧美国产成人| 日韩av电影在线网| 色综合色综合久久综合频道88| 国产精品海角社区在线观看| 不用播放器成人网| 中文字幕日韩欧美在线| 亚洲精品不卡在线| 色偷偷888欧美精品久久久| 亚洲一区二区久久久| 欧美成人性色生活仑片| 91国产视频在线播放| 国产精品一区二区久久| 亚洲第一av在线| 久久精品一区中文字幕| 成人av电影天堂| 2021久久精品国产99国产精品| 国产亚洲精品日韩| 亚洲黄色有码视频| 欧美在线一级视频| 国产精品69久久久久| 不卡av在线网站| 成人免费xxxxx在线观看| 国产成人拍精品视频午夜网站| 91影视免费在线观看| 神马久久久久久| 欧美性猛交xxxx| 亚洲欧美激情精品一区二区| 日韩在线播放av| 欧美大尺度激情区在线播放| 97视频在线观看亚洲| 亚洲日本成人网| 国产欧美日韩高清| 欧美电影在线观看| 97精品伊人久久久大香线蕉| 日韩成人在线网站| 日韩av免费在线| 日韩精品视频免费专区在线播放| 欧美激情va永久在线播放| 欧美亚洲日本网站| 国产一级揄自揄精品视频| 亚洲电影第1页| 国产视频精品xxxx| 大胆人体色综合| 国产精品日韩av| 亚洲精品美女网站| 久久色精品视频| 亚州精品天堂中文字幕| 亚洲一区久久久| 成人精品福利视频| 亚洲精品免费av| 91久久久久久久久久久| 精品视频中文字幕| 日本电影亚洲天堂|