从0-1搭建SpringBoot项目,保姆级教程

项目创建

idea新建项目

直接下一步

自定义你的项目名称,填好后点击“Finish”

目录创建

按照开发习惯一般分为:

4层目录:controller、service、dao或mapper、entity

一个启动类:UserApplication(名字可以随便自定义)

一个配置文件:application.yml(区分环境的话还可以创建application-dev.yml、application-pro.yml等)

mapper文件:resources目录下(记得在配置文件中指定)

启动类

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

配置文件

application.yml

spring:
  datasource:
    username: xxx
    password: xxx
    url: jdbc:mysql://IP:端口/库名?serverTimezone=UTC&useUnicode=true@characterEncoding=utf-8
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
  configuration:
  #  默认是不允许自动转换驼峰命名,得自己设置为true
  map-underscore-to-camel-case: true
  #  起别名,xml中 resultType可以省略包名,直接写 对象名
  type-aliases-package: com.lcdp.user.entity
mybatis-plus:
  #指定mapper文件位置
  mapper-locations: classpath:/mappers/**/*.xml
  configuration:
    #    默认是允许自动转换驼峰命名
    map-underscore-to-camel-case: true
    #    开启日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

pom.xml

1:引入父类

<parent>
    <artifactId>spring-boot-starter-parent</artifactId>
    <groupId>org.springframework.boot</groupId>
    <version>2.3.2.RELEASE</version>
</parent>

 2:<dependencies>标签内

<!--web启动器-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--单元测试-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--lombok包-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
<!--持久层框架mybaties-plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.2.0</version>
</dependency>
<!--参数验证-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
    <version>2.5.1</version>
</dependency>
<!--数据库驱动连接-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

代码样例

controller

package com.lcdp.user.controller;

import com.lcdp.user.entity.User;
import com.lcdp.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public List<User>  getUserList(){
        List<User> userList = userService.getUserList();
        return userList;
    }

    @GetMapping("/user")
    public User getUserById(@RequestParam(name = "id") Integer id){
        User user = userService.getUserById(id);
        return user;
    }
}

entity样例

package com.lcdp.user.entity;

import com.baomidou.mybatisplus.annotation.TableLogic;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;

public class BaseEntity {

    @NotBlank
    private String createUser;

    @NotBlank
    private LocalDateTime createTime;

    private String updateUser;

    private LocalDateTime updateTime;

    @TableLogic(value = "0", delval = "1")
    private boolean del;

}
package com.lcdp.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "lcdp_user")
public class User extends BaseEntity{

    @TableId(type = IdType.AUTO)
    @NotEmpty
    private Integer id;

    @NotBlank
    private String name;

    private String mobile;

}

 service接口类

package com.lcdp.user.service;

import com.lcdp.user.entity.User;

import java.util.List;

public interface UserService {

    List<User> getUserList();

    User getUserById(Integer id);

}

service实现类

这里采用了两种查询方式,

1:mybatiesplus提供的lambda代码方式

2:mappper xml中写sql的方式

package com.lcdp.user.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.lcdp.user.entity.User;
import com.lcdp.user.mappers.UserMapper;
import com.lcdp.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> getUserList() {
        LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
        List<User> users = userMapper.selectList(userLambdaQueryWrapper);
        return users;
    }

    @Override
    public User getUserById(Integer id) {
        User u = userMapper.getUserById(id);
        return u;
    }
}

mapper样例

package com.lcdp.user.mappers;

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

@Mapper
public interface UserMapper extends BaseMapper<User> {

    User getUserById(Integer id);

}

mapper 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.lcdp.user.mappers.UserMapper">

    <select id="getUserById" resultType="com.lcdp.user.entity.User">
        select * from lcdp_user
        <where>
            id = #{id}
        </where>
    </select>

</mapper>

最终版目录结构

运行项目

成功启动

访问成功

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 环境准备 在开始搭建Springboot项目之前,需要安装以下环境: - JDK 8 或以上版本 - Maven - IDE(如IntelliJ IDEA、Eclipse等) 2. 创建Springboot项目 在IDE中创建一个新的Maven项目,选择Spring Initializr作为项目模板。 Spring Initializr是Spring官方提供的一个快速构建Springboot项目的工具,可以通过简单的配置和选择快速创建一个基础的Springboot项目。 在创建项目时,需要选择项目的基本配置,包括项目的名称、类型、包名、依赖等。可以根据自己的需求进行配置,也可以选择默认配置。 3. 添加依赖 Springboot项目的依赖管理非常方便,可以通过Maven中央仓库自动下载所需的依赖。 在pom.xml文件中添加需要的依赖即可,例如: ```xml <dependencies> <!-- Springboot核心依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Mybatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency> <!-- 数据库驱动依赖 --> <dependency> <groupId>com.mysql.jdbc</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> ``` 4. 编写代码 在src/main/java目录下创建Springboot项目的主程序,该程序需要使用@SpringBootApplication注解标注。 ```java @SpringBootApplication public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } } ``` 在src/main/resources目录下创建application.properties文件,用于配置Springboot项目的一些参数。 例如,可以配置数据库连接参数: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 在src/main/java目录下创建具体的业务逻辑代码,例如: ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") public User getUserById(@PathVariable("id") Long id) { return userService.getUserById(id); } @PostMapping("/") public void saveUser(@RequestBody User user) { userService.saveUser(user); } } ``` 5. 运行项目 在IDE中运行Springboot项目,可以通过浏览器访问http://localhost:8080/user/1测试接口是否正常。 如果一切正常,则说明Springboot项目已经搭建成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值