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>
相关推荐
程序员岳焱4 分钟前
Java 与 MySQL 性能优化:Java 实现百万数据分批次插入的最佳实践
后端·mysql·性能优化
麦兜*34 分钟前
Spring Boot启动优化7板斧(延迟初始化、组件扫描精准打击、JVM参数调优):砍掉70%启动时间的魔鬼实践
java·jvm·spring boot·后端·spring·spring cloud·系统架构
KK溜了溜了1 小时前
JAVA-springboot 整合Redis
java·spring boot·redis
大只鹅1 小时前
解决 Spring Boot 对 Elasticsearch 字段没有小驼峰映射的问题
spring boot·后端·elasticsearch
ai小鬼头1 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
天河归来1 小时前
使用idea创建springboot单体项目
java·spring boot·intellij-idea
IT_10242 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
bobz9652 小时前
动态规划
后端
stark张宇2 小时前
VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)
linux·后端
武昌库里写JAVA2 小时前
Oracle如何使用序列 Oracle序列使用教程
java·开发语言·spring boot·学习·课程设计