您的位置:首页 > 编程语言 > Java开发

Kotlin整合Spring Boot实现数据库增删改查(spring data jpa版)

2018-01-12 20:42 639 查看
接上次的kotlin整合spring boot的mybatis版本,这次分享的内容也很精彩,现在spring data jpa也慢慢流行起来了,因此学习kotlin的时候也顺带写了spring data jpa版本的,下面就直接上代码分享给大家了

1 pom加入如下配置

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>2 springboot的主配置文件(配置数据源、日志、jpa)
server.port=8089
#DataBase DataSources
spring.datasource.url = jdbc:mysql://localhost:3306/debugxwz
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

logging.level.com.debug=debug

# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy  #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
3 实体Entity
package com.debug.pojo

import javax.persistence.Entity
import javax.persistence.Table
import javax.persistence.GenerationType
import javax.persistence.GeneratedValue
import javax.persistence.Id

@Entity
@Table(name = "user")
data class UserInfo (
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
val id:Int?=null,
val name:String?=null,
val address:String?=null
)4 DAO或Repository(CRUDRepository、PagingAndSortingRepository都可,根据实际需要选择)
package com.debug.dao

import com.debug.pojo.UserInfo
import org.springframework.data.repository.PagingAndSortingRepository
import org.springframework.data.repository.query.Param
import org.springframework.data.jpa.repository.Query
import org.springframework.data.jpa.repository.Modifying

interface UserDao:PagingAndSortingRepository<UserInfo, Integer> {
//根据id获取用户信息
fun findById(id: Int): UserInfo

@Query("select m from UserInfo m where m.name like %:name%")
fun getUserInfoByName(@Param("name") name:String):List<UserInfo>

@Modifying
@Query("update UserInfo m set m.name=:name where m.id=:id")
fun updateMemberById(@Param("name")name:String,@Param("id")id:Int)

@Modifying
@Query("delete from UserInfo m  where m.id=:id")
fun deleteMemberById(@Param("id")id:Int)

}
5  service层
package com.debug.service

import com.debug.pojo.UserInfo
import org.springframework.transaction.annotation.Transactional
import org.springframework.transaction.annotation.Propagation
import org.springframework.data.repository.query.Param

interface IUserService {

fun findUserById(userId: Int): UserInfo
fun getUserInfoByName(name:String):List<UserInfo>
fun updateMemberById(name:String,id:Int)
fun deleteMemberById(id:Int)

}
package com.debug.service.impl

import com.debug.service.IUserService
import javax.annotation.Resource
import com.debug.pojo.UserInfo
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import javafx.scene.control.Pagination
import org.springframework.transaction.annotation.Propagation
import com.debug.dao.UserDao

@Service(value="userSrvice")
open class UserService:IUserService{
@Resource
lateinit var userDao:UserDao

override fun findUserById(userId: Int):UserInfo{
return userDao.findById(userId)
}

override fun getUserInfoByName(name:String):List<UserInfo>{
return userDao.getUserInfoByName(name)
}
@Transactional(propagation=Propagation.REQUIRED)
override fun updateMemberById(name:String,id:Int){
return userDao.updateMemberById(name,id)
}
@Transactional(propagation=Propagation.REQUIRED)
override fun deleteMemberById(id:Int) {
return userDao.deleteMemberById(id)
}

}


service层要注意处理下事务否则调用时会报错

6  controller的代码
package com.debug.controller

import org.springframework.web.bind.annotation.RestController
import javax.annotation.Resource
import com.debug.service.IUserService
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.ResponseBody
import com.debug.pojo.UserInfo
import javax.servlet.http.HttpServletRequest
import com.debug.service.impl.UserService

@RestController
class UserController {

@Resource
lateinit var userService: IUserService;

@RequestMapping("/getById")
@ResponseBody
fun getUserById(req:HttpServletRequest):UserInfo {
val id:Int=Integer.parseInt(req.getParameter("id"))
val info:UserInfo=userService.findUserById(id)
return info
}
@RequestMapping("/getUserInfoByName")
@ResponseBody
fun getUserInfoByName(req:HttpServletRequest):List<UserInfo> {
val name:String=req.getParameter("name")
val info:List<UserInfo> =userService.getUserInfoByName(name)
return info
}

@RequestMapping("/updateMemberById")
@ResponseBody
fun updateMemberById(req:HttpServletRequest):String {
val name:String=req.getParameter("name")
val id:Int=Integer.parseInt(req.getParameter("id"))
userService.updateMemberById(name,id);
return "数据修改成功"
}

@RequestMapping("/deleteMemberById")
@ResponseBody
fun deleteMemberById(req:HttpServletRequest):String {

val id:Int=Integer.parseInt(req.getParameter("id"))
userService.deleteMemberById(id);
return "数据删除成功"
}

}至此所有的代码编写完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐