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)
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.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)
}
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 "数据删除成功"
}
}至此所有的代码编写完成
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.MySQL5Dialect3 实体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 "数据删除成功"
}
}至此所有的代码编写完成
相关文章推荐
- Kotlin整合Spring Boot实现数据库增删改查(mybatis版)
- Spring Boot整合MongoDB实现增删改查
- [增删改查] SpringBoot 整合 Solr 之 SolrClient 实现 CRUD、分页接口、高亮显示
- springboot整合H2内存数据库,实现单元测试与数据库无关性
- [增删改查] SpringBoot 整合 MongoDB 之 MongoTemplate 实现 CRUD、分页接口
- springboot整合mybatis实现多数据库的切换
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- Spring与SpringMVC整合,以及实现数据库数据的增删查改和分页操作
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- Spring Boot中使用Spring-data-jpa实现数据库增删查改
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- SpringBoot整合Mybatis实现增删改查的功能
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- springboot整合Quartz实现动态配置定时任务的方法
- Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查
- [增删改查] SpringBoot 整合 ElasticSearch 之 ElasticsearchRepository 的 CRUD、分页接口
- SpringBoot(八)SpringBoot整合springsession实现分布式session共享
- SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)