Kotlin+Vue+Spring Data JPA+MySQL 增查改刪

概述:

  1. Kotlin爲後端開發語言,持久層是Spring Data JPA

  2. 前後端分離,進行簡單增查改刪(CRUD)

  3. 前端使用VUE

  4. 數據庫使用MySQL

往期內容

# 內容
01 React+Spring Boot JPA+MySQL 增查改刪
02 Vue+Spring Boot JPA+MySQL 增查改刪 增查改刪
03 Vue+Spring Boot 文件操作,上傳、預覽和刪除
04 Thymeleaf+Spring Boot 文件操作,上傳、預覽和刪除

Vue前端代碼,不再重複。以下是Kotlin後臺代碼

#EmployeeController.kt

package com.example.kotlinjpacrud.controller


import com.example.kotlinjpacrud.entity.Employee
import com.example.kotlinjpacrud.repositories.EmployeeRepository
import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable import org.springframework.data.domain.Sort import org.springframework.data.web.PageableDefault import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* import javax.validation.Valid  @RestController @RequestMapping("/api/employee") class EmployeeController(private val employeeRepository: EmployeeRepository) {   /**  * 獲取所有員工分頁  * 以字段Id爲降序  * 沒有爲3條記錄  */  @GetMapping  fun getAllEmployees(@PageableDefault(sort = ["id"], direction = Sort.Direction.DESC, size = 3) pageable: Pageable): Page<Employee> {  return employeeRepository.findAll(pageable)  }   /**  * 新增員工  */  @PostMapping  fun createEmployee(@Valid @RequestBody employee: Employee): Employee {  return employeeRepository.save(employee)  }   /**  * 根據ID獲取員工  */  @GetMapping("/{id}")  fun getEmployeeById(@PathVariable(value = "id") employeeId: Long): ResponseEntity<Employee> {  return employeeRepository.findById(employeeId)  .map { employee -> ResponseEntity.ok(employee) }  .orElse(ResponseEntity.notFound().build())  }   /**  * 修改員工  */  @PutMapping  fun updateEmployeeById(@Valid @RequestBody newEmployee: Employee): ResponseEntity<Employee> {   return employeeRepository.findById(newEmployee.id)  .map { existingArticle ->  val updatedArticle: Employee = existingArticle  .copy(name = newEmployee.name,  gender = newEmployee.gender,  age = newEmployee.age,  introduce = newEmployee.introduce)  ResponseEntity.ok().body(employeeRepository.save(updatedArticle))  }.orElse(ResponseEntity.notFound().build())  }   /**  * 根據ID刪除  */  @DeleteMapping("/{id}")  fun deleteEmployeeById(@PathVariable(value = "id") employeeId: Long): ResponseEntity<Void> {  return employeeRepository.findById(employeeId)  .map { deleteEmployee ->  employeeRepository.delete(deleteEmployee)  ResponseEntity<Void>(HttpStatus.OK)  }.orElse(ResponseEntity.notFound().build())   } }   

#Employee.kt

package com.example.kotlinjpacrud.entity

import com.example.kotlinjpacrud.enums.Gender
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.Id  @Entity data class Employee(  @Id @GeneratedValue  var id: Long =0,  var name: String ="",  var gender: Gender = Gender.MALE,  var age: Int =0,  var introduce: String ="" ) 

#EmployeeRepository.tk

package com.example.kotlinjpacrud.repositories

import com.example.kotlinjpacrud.entity.Employee
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository

@Repository
interface EmployeeRepository :JpaRepository<Employee,Long> {
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章