ฉันได้แนะนำตัวอย่างบางส่วนของชั้นเว็บรวมถึงการสร้าง API ที่เหลือและแสดงผลมุมมองเว็บโดยใช้เอ็นจิ้นเทมเพลต thymeleaf แต่เนื้อหาเหล่านี้ไม่เพียงพอที่จะสร้างแอปพลิเคชันแบบไดนามิก โดยปกติไม่ว่าเราจะสร้างแอพหรือเว็บแอปพลิเคชันเราต้องการเนื้อหาและเนื้อหามักจะถูกเก็บไว้ในฐานข้อมูลประเภทต่างๆ หลังจากได้รับคำขอการเข้าถึงเซิร์ฟเวอร์จำเป็นต้องเข้าถึงฐานข้อมูลเพื่อรับและประมวลผลลงในรูปแบบข้อมูลที่แสดงสำหรับผู้ใช้
บทความนี้แนะนำตัวอย่างของการกำหนดค่าแหล่งข้อมูลภายใต้ Spring Boot และการเขียนการเข้าถึงข้อมูลผ่าน JDBCTEMPLATE
การกำหนดค่าแหล่งข้อมูล
เมื่อเราเข้าถึงฐานข้อมูลเราต้องกำหนดค่าแหล่งข้อมูลก่อน ต่อไปนี้เป็นวิธีการกำหนดค่าฐานข้อมูลที่แตกต่างกันหลายวิธี
ก่อนอื่นเพื่อเชื่อมต่อกับฐานข้อมูลคุณต้องแนะนำการสนับสนุน JDBC และการกำหนดค่าต่อไปนี้จะถูกนำเสนอใน build.gradle:
รวบรวม "org.springframework.boot: Spring-Boot-Starter-Jdbc: $ spring_boot_version"
เชื่อมต่อกับแหล่งข้อมูล
การใช้ฐานข้อมูล MySQL เป็นตัวอย่างก่อนแนะนำแพ็คเกจการพึ่งพาการเชื่อมต่อ MySQL และเพิ่มลงใน build.gradle:
รวบรวม "mysql: mysql-connector-java: $ mysql_version"
บิวด์บิวด์เสร็จสมบูรณ์
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' } การพึ่งพา {classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: $ kotlin_version" classpath ("org.springframework.boot: Spring-boot-gradle-plugin: $ spring_boot_version") // Kotlin classpath ("org.jetbrains.kotlin: kotlin-noarg: $ kotlin_version") classpath ("org.jetbrains.kotlin: kotlin-allopen: $ kotlin_version")}} ใช้ปลั๊กอิน: 'kotlin'apply ปลั๊กอิน: "Kotlin-spring" // https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-spring-compiler-pluginapply ปลั๊กอิน: org.springframework.boot'jar {basename = 'บทที่ 11-6-1-service {Compile "org.jetbrains.kotlin: kotlin-stdlib-jre8: $ kotlin_version" Compile "org.springframework.boot: Spring-Boot-Starter-Web: $ spring_boot_version" Compile " "mysql: mysql-connector-java: $ mysql_version" testcompile "org.springframework.boot: การทดสอบสปริง-สตาร์เทสต์: $ spring_boot_version kotlinoptions.jvmtarget = "1.8"} CompileTestKotlin {kotlinoptions.jvmtarget = "1.8"}กำหนดค่าข้อมูลแหล่งข้อมูลใน SRC/Main/Resources/Application.yml
ฤดูใบไม้ผลิ: DataSource: URL: JDBC: MySQL: // localhost: 3306/ทดสอบชื่อผู้ใช้: รหัสผ่านรูท: 123456 ไดรเวอร์-คลาส-ชื่อ: com.mysql.jdbc.driver
เชื่อมต่อกับแหล่งข้อมูล JNDI
เมื่อคุณปรับใช้แอปพลิเคชันบนแอปพลิเคชันเซิร์ฟเวอร์คุณสามารถใช้วิธีการกำหนดค่าต่อไปนี้เพื่อแนะนำแหล่งข้อมูล JNDI
หากคุณไม่ทราบมากเกี่ยวกับ JNDI โปรดดูที่ https://baike.baidu.com/item/jndi/3792442?fr=aladdin
Spring.datasource.jndi-name = java: JBoss/DataSources/ลูกค้า
ใช้ JDBCTEMPLATE เพื่อใช้งานฐานข้อมูล
JDBCTEMPLATE ของ Spring ได้รับการกำหนดค่าโดยอัตโนมัติและคุณสามารถใช้ @autowired เพื่อฉีดเข้าไปในถั่วของคุณเอง
ตัวอย่างเช่น: เรากำลังสร้างตารางผู้ใช้รวมถึงรหัสแอตทริบิวต์ชื่อและอายุ มาเขียนวัตถุการเข้าถึงข้อมูลและกรณีทดสอบหน่วย
กำหนดอินเทอร์เฟซนามธรรมที่มีการแทรกการลบและการสืบค้น
อินเทอร์เฟซ Userservice { / *** รับจำนวนผู้ใช้ทั้งหมด* / Val Allusers: Int? / *** เพิ่มผู้ใช้ใหม่* @param ชื่อ* @param Age*/ fun create (ชื่อ: สตริง, รหัสผ่าน: สตริง?)/ *** ลบผู้ใช้ที่สูงตามชื่อ* @param ชื่อ*/ fun deleteByName (ชื่อ: สตริง)/ *** ลบผู้ใช้ทั้งหมด*/ fun deleteAllusers ()}}}ใช้การดำเนินการเข้าถึงข้อมูลที่กำหนดไว้ใน Userservice ผ่าน JDBCTEMPLATE
นำเข้า org.springframework.beans.factory.annotation.autowiredimport org.springframework.jdbc.core.jdbctemplateimport org.springframework.stereotype.service/*** สร้างโดย http://quanke.name ในปี 2018/10 */ @serviceClass userserViceImpl: UserserVice {@AutoWired Val JDBCTEMPLATE: JDBCTEMPLATE? = NULL Override Val Allusers: int? get () = jdbctemplate !!. queryForObject ("เลือกนับ (1) จากผู้ใช้", int :: class.java) แทนที่ความสนุกสร้าง (ชื่อ: สตริง, รหัสผ่าน: สตริง?) {jdbctemplate !!. อัปเดต ("แทรกลงในผู้ใช้ (ชื่อผู้ใช้, รหัสผ่าน) JDBCTEMPLATE !!. อัปเดต ("ลบจากผู้ใช้ที่ชื่อผู้ใช้ =?", ชื่อ)} แทนที่ความสนุก deleteAllusers () {JDBCTEMPLATสร้างกรณีทดสอบหน่วยสำหรับผู้ใช้เพื่อตรวจสอบความถูกต้องของการดำเนินการฐานข้อมูลโดยการสร้างการลบและการสืบค้น
/*** สร้างโดย http://quanke.name เมื่อ 2018/1/9 */@runwith (springrunner :: คลาส) @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 USESTRADE ("$ USERNAME" c "," $ password 3 ") userservice.create (" $ username d "," $ รหัสผ่าน 4 ") userservice.create (" $ username e "," $ password 5 ") log.info (" ผู้ใช้ทั้งหมด $ {userservice.allusers} " b ") log.info (" ผู้ใช้ทั้งหมด $ {userservice.allusers} ")}}JDBCTEMPLATE ที่แนะนำข้างต้นเป็นเพียงส่วนหนึ่งของการดำเนินการขั้นพื้นฐานที่สุด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้การดำเนินการเข้าถึงข้อมูลอื่น ๆ โปรดดูที่: jdbctemplate API
ผ่านตัวอย่างง่ายๆด้านบนเราจะเห็นว่าการกำหนดค่าการเข้าถึงฐานข้อมูลภายใต้การบูตสปริงยังคงเป็นไปตามความตั้งใจดั้งเดิมของเฟรมเวิร์ก: ง่าย เราจำเป็นต้องเพิ่มการพึ่งพาฐานข้อมูลไปยัง pom.xml จากนั้นกำหนดค่าข้อมูลการเชื่อมต่อใน application.yml เราไม่จำเป็นต้องสร้างถั่ว jdbctemplate เช่นแอปพลิเคชันฤดูใบไม้ผลิและเราสามารถฉีดโดยตรงและใช้ในวัตถุของเราเอง
สรุป
ด้านบนเป็นวิธีการใช้ JDBCTEMPLATE เพื่อเชื่อมต่อกับฐานข้อมูล MySQL โดย Spring Boot และ Kotlin ซึ่งฉันแนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!