Spring Boot
初识Spring Boot
构建spring boot 项目
Spring Boot项目的三个核心文件
Spring Boot的Web项目的启动方式
示例
pom.xml 添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
配置文件
main 页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎登录成功</h1>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="login">
用户名:<input type="text" name="name"/><br/>
密码:<input type="text" name="pwd"/><br/>
<input type="submit" value="登录">
</form>
</body>
</html>
spring boot
测试类
新建entity.Users
package com.a1207.a1207springbootch2.entity;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
public class Users {
private int id;
@Value("${user.username}")
private String name;
@Value("${user.age}")
private int age;
private String addresss;
@Override
public String toString() {
return "Users{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", addresss='" + addresss + '\'' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddresss() {
return addresss;
}
public void setAddresss(String addresss) {
this.addresss = addresss;
}
}
配置文件中添加 application.yml
user:
username: zhangsan
age: 18
新建测试类 a1207Test
package com.a1207.a1207springbootch2;
import com.a1207.a1207springbootch2.entity.Users;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class a1207Test {
@Autowired
Users u;
@Test
public void test02(){
System.out.println(u.toString());
}
@Test
public void test(){
System.out.println("测试1");
}
}
这两个必须一样
如果不添加 value 的话 username 显示的就是电脑用户名称 age 正常显示
使用properties文件实现多环境配置
以使用YAML文件实现多环境配置
不推荐这个
Spring Boot 的自动配置
引入依赖
实例
扩展
自动生成 getset toString
注意一定要安装这个插件,不然用不了
添加这个注释即可
链式写法
上面的写法和下面的写法是一样的
mybatisPlus 整合 spring boot
数据库表 这里写user_name ,在我们的实体类里面可以写userName 他会自动帮我们转换,写user_name 会找不到
导入 jar 包
编写配置,更具自己的来修改
编写一个dao
可以看到 mybatisplus 里面添加了许多方法
注意如果这样写 数据库里的主键id 要操作一下
这里的主键id 要在代码里添加一个注释 不然会报错 (@TableId(type = IdType.AUTO))自动自增
如果这里的 private Integer id 和数据库里的id不一样的话,要添加 value=‘‘id’ ,这里的value=‘id’’ 要和数据库里的一样
演示
前端
control 层代码
selectOne
注意selectOne 只可以返回一个结果,如果结果有多个,就会报错 传一个 QueryWrapper<Student> 即可 ,QueryWrapper 传法如下
导入SQL 打印
server:
port: 8088
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/billsSys
username: root
password: root123
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
扩展程序 非关系型数据库
数据放在数据库里,后面查询慢 放在Redis 里面(内存)里面,就很快
Redis
默认端口号 6379
安装Another
软件界面
在引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
替换版本
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/>
设置这个时长,到了指定时间销毁
Git
Git 的安装可以自行搜索教程
首先安装Git
配置 idea
网页搜索码云 并注册账号
选择我的 > 我的仓库
创建一个仓库
完成后要输入码云的账户密码
完成后点击
就传上去了
分页
插件写法如下
@Bean
public MybatisPlusInterceptor plusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return mybatisPlusInterceptor;
}
模糊查询加分页
@RequestMapping("/list")
public String list(Model model){
Page<UserInfo> page = new Page<>(3,3);
QueryWrapper<UserInfo> qw = new QueryWrapper<>();
qw.like("name","a");
Page<UserInfo> pages = userDao.selectPage(page, qw);
List<UserInfo> list = pages.getRecords();
model.addAttribute("ulist",list);
return "userlist";
}
<tr th:each="u:${ulist}">
<td th:text="${u.id}"></td>
<td th:text="${u.username}"></td>
<td th:text="${u.password}"></td>
</tr>
|