在上述环境下,Spring Boot 应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速的运行起来。使用 Spring Boot 很容易创建一个独立运行(运行 Jar,内嵌 Servlet 容器)准生产级别的基于 Spring 框架的项目,使用 Spring Boot 你可以不用或者只需很少的 Spring 配置。
open class PageUtil {
/**
* 取mybatis-plus分页对象
*/
open fun getPage(query : Query):Page<Any>? {
return Page(query.page, query.pageSize);
}
}
表名与字段的映射的JavaBean实体类
/**
*data保持数据data class就是一个类中只包含一些数据字段,类似于vo,pojo,java bean。一般而言,
*我们在Java中定义了这个数据类之后要重写一下toString,equals等方法。要生成get,set方法
*https://www.cnblogs.com/liuliqianxiao/p/7152773.html
*注意mybatis查询数据,然后封装实体的时候,构造方法这里有点儿坑,查询的字段必须与构造方法一直。
*/
@TableName("t_user")
data class User constructor(
@TableId(value = "user_id", type = IdType.ID_WORKER)
var userId: Long?= null,//用户Id主键,IdWork生成
var userName: String? = null,//用户名
var passWord: String? = null,//密码
@TableLogic
@JSONField(name = "isDeleted")
var isDeleted: Int? = null,//删除
var createTime: Date? = null //创建时间,允许为空,让数据库自动生成即可
) :Serializable{
//手动重写toString方法
override fun toString(): String {
return "[User(userId = $userId,userName = $userName, passWord=$passWord,isDeleted=$isDeleted,createTime=$createTime),]"
}
//equals
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as User
if (userId != other.userId) return false
if (userName != other.userName) return false
if (passWord != other.passWord) return false
if (isDeleted != other.isDeleted) return false
if (createTime != other.createTime) return false
return true
}
override fun hashCode(): Int {
var result = userId?.hashCode() ?: 0
result = 31 * result + (userName?.hashCode() ?: 0)
result = 31 * result + (passWord?.hashCode() ?: 0)
result = 31 * result + (isDeleted?.hashCode() ?: 0)
result = 31 * result + (createTime?.hashCode() ?: 0)
return result
}
}
@Service
open class UserService : BaseService<IUserMapper,User,UserQuery>() {
//Kotlin lateinit 和 by lazy 的区别
//http://blog.csdn.net/Sherlbon/article/details/72769843
@Autowired lateinit var userMapper: IUserMapper;
//根据
open fun queryAllUser(): List<User>? {
var wrapper = createWrapper();
return this.selectList(wrapper);
}
open fun listPage(query : UserQuery) : PageVO<UserRespVo> ? {
var page = PageUtil().getPage(query) ;// 设置分页
var dataList = userMapper.getUserList(query, page!!);//page!!强制告诉编辑器不可能为空
var json = JSON.toJSONString(dataList);
println(json)
return PageVO(dataList, page);// 获取分页数和总条数
}
//通过主键id进行查询
open fun getUserId(userId: Long): User? {
return get(userId);
}
//插入用户
open fun addUser() {
var userId = IdWorker.getId();
var u = User(userId, "liangjl", "123456",null, Date());
var json = JSON.toJSONString(u);
println(json)
add(u);
}
fun createWrapper(): Wrapper<User> {
var wrapper = EntityWrapper<User>();
wrapper.setEntity(User());//设置实体
return wrapper;
}
}
Controller代码的CRUD的代码实现
C - Create 对数据添加或增加操作
R - Retrieve 对数据读取查询操作
U - Update 对数据更新或修改操作
D - Delete 对数据删除操作
@RestController
@RequestMapping("/rest")
open class UserController : BaseController(){
@Autowired private lateinit var userService: UserService
@RequestMapping("/list1")
fun list1(): String{
return "NewFile" //跳转页面
}
//添加
@RequestMapping("/add")
fun add(): Unit{
userService.addUser()
}
//根据用户Id进行删除用户信息
@RequestMapping("/deletedById")
fun deletedById(userId : Long): Unit{
userService.deleteById(userId);
}
//更新用户信息,通过Id唯一主键进行操作。
@RequestMapping("/update")
fun update(user : User): Unit{
userService.updateById(user)
}
//根据Id查询用户
@RequestMapping("/getUserId")
fun getUserId(userId :Long):Any?{
var user = userService.getUserId(userId);
if(user ==null){
var msgCode = UserMsgCode.FIND_NOT_USER;
throw BaseException(msgCode.code!! ,msgCode.message!!)
}
return userService.getUserId(userId)
}
//查询所有用户信息
@RequestMapping("/queryAllUser")
fun queryAllUser():List<User>?{
return userService.queryAllUser()
}
//分页查询
@RequestMapping("listPage")
fun listPage(query :UserQuery) :PageVO<UserRespVo> ? {
var listPage = userService.listPage(query);
return listPage;
}
@RequestMapping("/getBody")
fun getBody(@RequestBody jsonText:UserRespVo){
println(jsonText.component2())
println(jsonText.userName)
}
}
请发表评论