1. 程式人生 > >使用 kotlin+spring-boot+Mybatis-plus+Mysql進行web開發

使用 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

(二)進入相關依賴

在 pox.xml 檔案中引入如下

	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency>
 	<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.6</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.15</version>
        </dependency>

(三) 配置檔案中

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.testdemo1.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.example.testdemo1.entity.User">
        <id column="id" property="id" />
        <result column="name" property="name" />
        <result column="age" property="age" />
        <result column="add_time" property="addTime" />
        <result column="update_time" property="updateTime" />
        <result column="add_user" property="addUser" />
        <result column="update_user" property="updateUser" />
    </resultMap>
</mapper>

(六) mapper介面類

建立一個kotlin介面  UserMapper.kt.  並繼承BaseMapper

BaseMapper屬於mybatis-plus的核心類

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

@Mapper
interface UserMapper: BaseMapper<User>{
	
}

注意:

如果在自己寫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<User>{
		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<User>{
		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   可以關注我