Saya telah memperkenalkan beberapa contoh lapisan web, termasuk membangun API yang tenang dan membuat tampilan web menggunakan mesin template thymeleaf, tetapi konten ini tidak cukup untuk membangun aplikasi yang dinamis. Biasanya, apakah kami membuat aplikasi atau aplikasi web, kami membutuhkan konten, dan konten biasanya disimpan dalam berbagai jenis database. Setelah menerima permintaan akses, server perlu mengakses database untuk mendapatkan dan memprosesnya ke dalam formulir data yang ditampilkan untuk pengguna.
Artikel ini memperkenalkan contoh mengkonfigurasi sumber data di bawah boot Spring dan menulis akses data melalui JDBCtemplate.
Konfigurasi Sumber Data
Saat kami mengakses database, kami perlu mengkonfigurasi sumber data terlebih dahulu. Berikut ini adalah beberapa metode konfigurasi basis data yang berbeda.
Pertama, untuk terhubung ke database, Anda perlu memperkenalkan dukungan JDBC, dan konfigurasi berikut diperkenalkan di build.gradle:
kompilasi "org.springframework.boot: spring-boot-starter-jdbc: $ spring_boot_version"
Terhubung ke sumber data
Mengambil database MySQL sebagai contoh, pertama -tama perkenalkan paket ketergantungan koneksi MySQL dan tambahkan ke build.gradle:
kompilasi "mysql: mysql-connector-java: $ mysql_version"
Lengkap build.gradle
grup '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.1.1.1.7 Dependensi {classpath "org.jetbrains.kotlin: Kotlin-gradle-plugin: $ Kotlin_version" classpath ("org.springframework.boot: spring-boot-gradle-plugin: $ spring_boot_version") // Kotlin mengintegrasikan spring-gradle paramsless paramless paramon-nol, dan springless classor, dan Kotlin mengintegrasikan springboot ParamoTless Paramon-TanPless, dan Kotlin Parlak-Parlin, classpath ("org.jetbrains.kotlin: Kotlin-noarg: $ Kotlin_version") classpath ("org.jetbrains.kotlin: Kotlin-Allopen: $ Kotlin_version")}} Plugin: 'Kotlin'Apply plugin: "Kotlin-SPRING" 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-boots-starter" compile "org.springframework.boot: spring-boots-starter" compile "org.springframework.boot: spring-boots-starter" compile "org.springframework.boot: spring-boot-starter" compile "org.springframework.boot: spring-boot-starter" compile "org.springframework.boot: spring-boot-starter "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" Kotlinoptions.jvmTarget = "1.8"} CompileTestKotlin {Kotlinoptions.jvmTarget = "1.8"}Konfigurasikan Informasi Sumber Data di SRC/Main/Resources/Application.yml
Spring: DataSource: URL: JDBC: mysql: // localhost: 3306/uji nama pengguna: root Password: 123456 driver-class-name: com.mysql.jdbc.driver
Sambungkan ke sumber data JNDI
Saat Anda menggunakan aplikasi pada server aplikasi, Anda dapat menggunakan metode konfigurasi berikut untuk memperkenalkan sumber data JNDI.
Jika Anda tidak tahu banyak tentang jndi, silakan merujuk ke https://baike.baidu.com/item/jndi/3792442?fr=aladdin
spring.datasource.jndi-name = java: jboss/datasources/pelanggan
Gunakan jdbctemplate untuk mengoperasikan database
JDBCtemplate Spring secara otomatis dikonfigurasi, dan Anda dapat menggunakan @Autowired untuk menyuntikkannya ke dalam kacang Anda sendiri.
Misalnya: kami membuat tabel pengguna, termasuk ID Atribut, Nama, dan Usia. Mari kita tulis objek akses data dan kasus uji unit.
Tentukan antarmuka abstrak yang berisi penyisipan, penghapusan, dan kueri.
Antarmuka UserserService { / *** Dapatkan jumlah total pengguna* / val allusers: int? / *** Tambahkan pengguna baru* @param nama* @param usia*/ fun create (nama: string, kata sandi: string?)/ *** hapus tinggi pengguna sesuai nama* @param nama*/ fun deletebyname (nama: string)/ *** hapus semua pengguna*/ fun deleteallusers ()}Menerapkan operasi akses data yang ditentukan dalam UsersEver
Impor org.springframework.beans.factory.annotation.AutowiredImport org.springframework.jdbc.core.jdbctemplateImport org.springframework.stereotype.service/*** dibuat oleh http://quanke.name on 2018.88/10. */ @ServiceClass UserserServiceImpl: UserserService {@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 ("hapus dari pengguna di mana username =?", name)} override fun deleteallusers () {jdbctemplate !!. update ("hapus dari pengguna")}}Buat kasus uji unit untuk UserService untuk memverifikasi kebenaran operasi basis data dengan membuat, menghapus, dan meminta.
/*** dibuat oleh http://quanke.name pada 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" // Insert 5 users 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("Total users${userService.allUsers}") // Delete two users userService.deleteByName("$username a") userService.deleteByName("$username b") log.info ("Total pengguna $ {UsserService.allusers}")}}JDBCtemplate yang diperkenalkan di atas hanyalah beberapa operasi paling dasar. Untuk informasi lebih lanjut tentang penggunaan operasi akses data lainnya, silakan merujuk ke: JDBCTEMPLATE API
Melalui contoh sederhana di atas, kita dapat melihat bahwa konfigurasi mengakses database di bawah boot pegas masih melekat pada niat asli kerangka kerja: Sederhana. Kami hanya perlu menambahkan dependensi basis data ke pom.xml dan kemudian mengkonfigurasi informasi koneksi di application.yml. Kami tidak perlu membuat aplikasi JDBCtemplate Bean seperti Spring, dan kami dapat secara langsung menyuntikkan dan menggunakannya di objek kami sendiri.
Meringkaskan
Di atas adalah metode menggunakan JDBCtemplate untuk terhubung ke database MySQL dengan Spring Boot dan Kotlin, yang saya perkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!