SpringBoot笔记1

继承父工程

xml 复制代码
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.10</version>
    </parent>

java 无效的源发行版 17 解决方法

xml 复制代码
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

web场景启动器

xml 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

设置端口

yml 复制代码
server:
  port: 8081

mysql驱动,没有的话在yml文件中的driver:com.mysql.cj.jdbc.Driver会报错

xml 复制代码
		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>

mysql配置

yml 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/XXXX
    username: root
    password: XXXXXX

jdbc场景启动器:需要使用时JdbcTemplate导入依赖

xml 复制代码
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
测试
java 复制代码
@SpringBootTest
public class MainTest {
    @Autowired
    JdbcTemplate jdbcTemplate;
    @Test
    public void test() throws SQLException {
        String sql = "select * from user";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        System.out.println(maps.toString());
    }
}
测试结果
bash 复制代码
[{id=1, username=user1, password=pass1, nickname=nick1}, {id=2, username=user2, password=pass2, nickname=nick2}]

lombok(需要和idea的lombok插件一起使用)

xml 复制代码
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

SpringBoot整合Web、MyBatis

依赖
xml 复制代码
		<!--web场景启动器-->
        <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.1.2</version>
        </dependency>
        <!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
配置文件
yml 复制代码
server:
  port: 8081
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/xxx
    username: root
    password: 123456
mybatis:
#  xml文件路径
  mapper-locations: classpath:mapper/*.xml
#  起别名
  type-aliases-package: com.xxx.pojo
统一返回类
java 复制代码
@Data
//返回结果类
public class R<T> {
    //详细信息
    private String msg;
    //返回码
    private Integer code;
    //返回数据
    private T data;
    //构造方法私有化
    private R(){}
    public static <T> R<T> build(String msg, Integer code,T data){
        R<T> r = new R<>();
        r.data = data;
        r.msg = msg;
        r.code = code;
        return r;
    }
    public static <T> R<T> build(ResultEnum resultEnum,T data){
        R<T> r = new R<>();
        r.data = data;
        r.msg = resultEnum.getMsg();
        r.code = resultEnum.getCode();
        return r;
    }
    public static <T> R<T> success(){
        R<T> r = R.build(ResultEnum.Success, null);
        return r;
    }
    public static <T> R<T> fail(){
        R<T> r = R.build(ResultEnum.Fail, null);
        return r;
    }
    public static <T> R<T> success(T data){
        R<T> r = R.build(ResultEnum.Success, data);
        r.data =  data;
        return r;
    }
}
返回类信息枚举类
java 复制代码
@AllArgsConstructor
@Getter
public enum ResultEnum {
    Success("成功",200),
    Fail("失败",500);
    private String msg;
    private Integer code;
}

web架构

控制层
java 复制代码
@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    Userservice userservice;
    @GetMapping("list")
    public R list(){
        return userservice.list();
    }
}
业务层
java 复制代码
//业务层接口
public interface Userservice {
    R list();
}
//业务层具体实现
@Service
public class UserServiceImpl implements Userservice {
    @Autowired
    private UserMapper userMapper;
    @Override
    public R list() {
        List<User> list = userMapper.list();
        return R.success(list);
    }
}
数据层
java 复制代码
@Mapper
public interface UserMapper {
    @Select("select * from user")
    List<User> list();
}

也可以:

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.xx.UserMapper">
    <select id="list" resultType="user">
        select * from user;
    </select>
</mapper>
相关推荐
MadPrinter23 分钟前
SpringBoot学习日记 Day11:博客系统核心功能深度开发
java·spring boot·后端·学习·spring·mybatis
dasseinzumtode24 分钟前
nestJS 使用ExcelJS 实现数据的excel导出功能
前端·后端·node.js
淦出一番成就27 分钟前
Java反序列化接收多种格式日期-JsonDeserialize
java·后端
Java中文社群29 分钟前
Hutool被卖半年多了,现状是逆袭还是沉寂?
java·后端
程序员蜗牛1 小时前
9个Spring Boot参数验证高阶技巧,第8,9个代码量直接减半!
后端
yeyong1 小时前
咨询kimi关于设计日志告警功能,还是有启发的
后端
库森学长1 小时前
2025年,你不能错过Spring AI,那个汲取了LangChain灵感的家伙!
后端·openai·ai编程
Java水解1 小时前
Spring Boot 启动流程详解
spring boot·后端
学历真的很重要2 小时前
Claude Code Windows 原生版安装指南
人工智能·windows·后端·语言模型·面试·go
转转技术团队2 小时前
让AI成为你的编程助手:如何高效使用Cursor
后端·cursor