使用 kotlin+spring-boot+Mybatis-plus+Mysql進行web開發
說明:
1、在這裡關於kotlin語言和springboot及mybatis-plus、mysql、這些不做過多解說。直接快速搭建環境,開發專案。
2、在這裡只是一個小demo,後續會出專案開發完成流程、及較差、
3、相信很多人在整合過程中會遇到各種各樣的問題,如果有問題,可以聯絡我,qq:1226500260.或者給我留言。
專案demo: git倉庫 點選這裡
前期準備:
1、工具:這裡使用的是 eclipse。(關於eclipse中整合kotlin開發環境,可參考我;另一篇博文:
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 可以關注我