使用 kotlin+spring-boot+Mybatis-plus+Mysql进行web开发

说明:

    1、在这里关于kotlin语言和springboot及mybatis-plus、mysql、这些不做过多解说。直接快速搭建环境,开发项目。
    2、在这里只是一个小demo,后续会出项目开发完成流程、及较差、
    3、相信很多人在整合过程中会遇到各种各样的问题,如果有问题,可以联系我,qq:1226500260.或者给我留言。

    项目demo: git仓库 点击这里

前期准备:

    1、工具:这里使用的是 eclipse。(关于eclipse中集成kotlin开发环境,可参考我;另一篇博文:https://mp.csdn.net/postedit/84763786)
    2、数据库:mysql
    3、开发语言:kotlin

正式开始:

(一)创建项目

浏览器输入:https://start.spring.io/ 快速创建项目,下载后解压导入到eclipse

使用 kotlin+spring-boot+Mybatis-plus+Mysql进行web开发_第1张图片

(二)进入相关依赖

在 pox.xml 文件中引入如下

	
		mysql
		mysql-connector-java
		runtime
	
 	
            com.baomidou
            mybatis-plus-boot-starter
            3.0.6
        
        
            com.alibaba
            druid
            1.0.15
        

(三) 配置文件中

application.yml文件中

server:
    port: 8080
    
spring:
  datasource:
    url: jdbc:mysql://192.xxx.x.xx:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
   
mybatis-plus:
  mapper-locations: classpath:*/mapper/xml/*Mapper.xml
  type-aliases-package: com.example.testdemo1.entity,com.example.testdemo1.mapper 
 

(四)实体类

创建一个kotlin类  User.kt.

data  class User(
    var id: String? = null,

    var name: String? = null,

    var age: String? = null,
	
    var addTime: String? = null,
	
    var addUser: String? = null,
	
    var updateTime: String? = null,
	
    var updateUser: String? = null
)

(五)实体映射文件

创建一个xml文件 UserMapper.xml




    
        
        
        
        
        
        
        
    

(六) mapper接口类

创建一个kotlin接口  UserMapper.kt.  并继承BaseMapper

BaseMapper属于mybatis-plus的核心类

import com.baomidou.mybatisplus.core.mapper.BaseMapper

@Mapper
interface UserMapper: BaseMapper{
	
}

注意:

如果在自己写sql语句,这里需要注意下。例如,自己写条插入语句

@Insert("insert into user (id,name,age,add_time,add_user,update_time,update_user)"+
			"values (#{id},#{name},#{age},#{addTime},#{addUser},#{updateTime},#{updateUser})")
fun addUser(user:User);

这里的取占位符的值是直接写 参数对象User 中的属性。而不是 对象.属性

(七) controller

创建一个kotlin类  UserController.kt.

@RestController
class UserController {
	
	@Autowired
	lateinit var userService: UserService;
	
	@PostMapping("/user")
	fun insertUser():User{
		return userService.insertUser();
	}
	@GetMapping("/user/list")
	fun getUserList():List{
		return userService.getUserList();
	}
	@GetMapping("/user/{id}")
	fun getUserById(@PathVariable id:String):User{
		return userService.getUserById(id);
	}
}

(八) Service接口类

创建一个kotlin类  IUserService.kt.

interface IUserService {
	fun insertUser();
	fun getUserList();
	fun getUserById(id:String);
}

(九) Service实现类 

创建一个kotlin类  UserServic.kt.

@Service
open class UserService:IUserService {
	@Autowired
	lateinit var userMapper: UserMapper;
	
	override fun insertUser():User{
		var user = User("1","张三丰","20","2018123","张三丰","2018123","张三丰")
		userMapper.insert(user);
		return user
	}
	override  fun getUserList():List{
		var userList = userMapper.selectList(null);		
		userList?.forEach{item -> println(item)}
		return userList
	}
	override  fun getUserById(id:String):User{
		var user = userMapper.selectById(id);
		return user;
	}
	
}

 

结束

如有问题,可以联系我。

后续还会陆续出实战项目,kotlin+mybatis-plus+spring-boot+(各种)数据库+vue/react   可以关注我

 

 

 

你可能感兴趣的:(kotlin)