1. 下载通用模板
从https://start.spring.io/ 下载公共模板,右侧添加web,mysql,mybatis相关的jar引用,下载后导入到idea中
2. 配置application.properties
配置端口、环境、数据源、mybatis相关配置
server.port=8080
spring.profiles.active=dev
# datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ds0?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# mybatis
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.leeong.demo.domain
# 驼峰映射
mybatis.configuration.map-underscore-to-camel-case=true
3.创建对应表和记录
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名',
`age` tinyint(4) NULL DEFAULT NULL COMMENT '年龄',
`sex` tinyint(4) NULL DEFAULT NULL COMMENT '性别0-女 1-男',
`status` tinyint(4) NULL DEFAULT NULL COMMENT '状态0-无效 1-有效',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建shij ',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '小王', 20, 1, 1, '2021-06-10 16:50:29');
SET FOREIGN_KEY_CHECKS = 1;
4.创建对应Java 类
创建domian/dao/service/controller/mapper
UserController
package com.leeong.demo.controller;
import com.leeong.demo.service.UserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@AllArgsConstructor
@Slf4j
public class UserController {
UserService userService;
@GetMapping("/user/getUserById")
public Map<String,Object> getUserById(@RequestParam("id") Long id){
Map<String,Object> map = new HashMap<>();
map.put("code",200);
map.put("data",userService.getUserById(id));
return map;
}
}
UserService
package com.leeong.demo.service;
import com.leeong.demo.dao.UserDao;
import com.leeong.demo.domain.User;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@Service
@Transactional(rollbackFor = Exception.class)
@AllArgsConstructor
public class UserService {
UserDao userDao;
public Integer insert(User user){
user.setCreateTime(new Date());
user.setStatus(1);
return userDao.insert(user);
}
/**
* 查询 user 信息
* @param id
* @return
*/
public User getUserById(Long id){
return userDao.getUserById(id);
}
}
UserDao
package com.leeong.demo.dao;
import com.leeong.demo.domain.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserDao {
User getUserById(Long id);
Integer insert(User user);
Integer update(User user);
Integer delete(Long id);
}
UserMapper.xml 在resouce/mapper目录下
<?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.leeong.demo.dao.UserDao">
<insert id="insert" parameterType="com.leeong.demo.domain.User">
insert into user(name,age,sex,status,create_time) values(#{name},#{age},#{sex},#{status},#{createTime});
</insert>
<select id="getUserById" resultType="com.leeong.demo.domain.User">
select name,age,sex,status,create_time from user where id = #{id}
</select>
<delete id="delete" parameterType="long">
delete from user where id = #{id}
</delete>
<update id="update" parameterType="com.leeong.demo.domain.User" >
update user set
name = #{name},
age = #{age},
sex = #{sex},
status = #{status},
create_time = #{createTime}
where id = #{id}
</update>
</mapper>
5. 发起请求
浏览器输入:http://localhost:8080/user/getUserById?id=1
返回结果: {"code":200,"data":{"id":null,"name":"小王","age":20,"sex":1,"status":1,"createTime":"2021-06-10T08:50:29.000+00:00"}}
6. 总结
自此简单的实现CRUD的springboot框架就搭建完成了,下一节我们会引入Mybatis-plus插件,进一步简化对mapper的操作,请大家拭目以待持续关注哦。springboot系列持续更新中,也欢迎大家提出意见,多多交流,共同进步。源代码地址:https://gitee.com/null_484_1073/springboot.git