VsCode中使用Java

文章目录

引言

本文将从零搭建一个VsCode+ Spring Boot + MySQL

的用户管理接口,覆盖环境准备、建表、编写接口、启动验证的完整链路。最终通过浏览器访问

http://localhost:8080/api/users/1 返回 JSON 数据。

一、下载软件

  • 下载JDK
    下载路径放到JAVA_HOME系统变量下面,在Path内加入%JAVA_HOME%\bin启动地址
  • 下载MAVEN
    下载内容后设置系统变量,跟JDK设置类似
  • 下载MySQL
    选择最全安装,带有sever、Workbench(可视化操作)
  • 下载vs code以及插件
插件名称 作用
Extension Pack for Java Java 开发全家桶(含 Maven、调试、语法提示)
Spring Boot Extension Pack Spring Boot 专用支持(含配置文件提示)
Lombok Annotations Support 让 @Data 等注解生效

二、表创建

  • mysql安装,默认端口3060,自己设置密码
  • 点击增加新Tap按钮,先链接:Reconnect to DBMS,输入一下命令,点执行命令
  • 新增完表结构,增加几条测试数据
sql 复制代码
-- 1. 创建数据库
CREATE DATABASE IF NOT EXISTS demo_db CHARACTER SET utf8mb4;

-- 2. 切换到该库
USE demo_db;

-- 3. 创建用户表
CREATE TABLE `user` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `name` VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    `age` INT NULL DEFAULT NULL COMMENT '年龄',
    `email` VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 4. 插入测试数据(至少3条)
INSERT INTO `user` (`name`, `age`, `email`) VALUES
('张三', 22, 'zhangsan@test.com'),
('李四', 25, 'lisi@test.com'),
('王五', 28, 'wangwu@test.com');

三、编写接口代码

3.1 目录规范,根据域名层级来命名

3.2 启动类

项目唯一入口,规定了自动配置、Mapper存放位置、启动方式等

3.3 新建文件

新建entity/User.java,存放类对象结构(实体类,与表结构有关),自动生成getter/setter,并且设置表对应关系

java 复制代码
package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

新建mapper/UserMapper.java,规定MyBatis映射器,自动集成各种CRUD方法,执行时将自动生成代理对象,将数据生成Sql语句,执行Sql语句或者拿到结果生成数据对象;

java 复制代码
package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

新建 controller/UserController.java:接口逻辑处理,参数和返回值序列化等

java 复制代码
package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/{id}")
    public User getById(@PathVariable Long id) {
        return userMapper.selectById(id);
    }
}

四、启动

相关推荐
lq_bog1 小时前
spring事务失效
java·数据库·spring
API快乐传递者1 小时前
淘宝京东数据分析实战指南:从指标体系到决策落地的全链路方法论
java·大数据·数据分析
vancece1 小时前
JS实现堆 & 215.数组中的第K个最大元素
java·前端·javascript
就叫_这个吧1 小时前
java springcloud熔断降级组件sentinel基础应用及nacos持久化处理
java·spring cloud·nacos·sentinel
SimonKing1 小时前
Apache Fory JSON或许可以替代FastJson
java·后端·程序员
程序员良辰1 小时前
【TongWeb7的M11】 首次登录密码修改 & 开启控制台远程访问
java·中间件·tomcat
吴声子夜歌1 小时前
Java面试——设计模式(四)
java·设计模式·面试
paopaokaka_luck1 小时前
基于springboot3+vue3+uniapp的剧本杀预约小程序(AI角色对话、协同过滤算法、地图Api、Echarts图形化分析)
java·前端·spring boot·学习·echarts
一嘴一个橘子1 小时前
idea 的 双击Shift 全局搜索
java·ide·intellij-idea