SpringBoot 开发实战 | 第一节 快速搭建SpringBoot crud 开发框架

本文详细介绍如何使用SpringBoot框架配合MyBatis实现基本的增删改查功能,包括环境搭建、配置文件设定、数据库操作等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值