学习东西需要记录,不然很容易忘记。很久之前就学习了springboot,在学习Vue前端框架的时候需要写一个增删改查的demo。迅速想到了springboot,学习很久了,springBoot的东西都忘得差不多了。于是重新开始学习一次。(谁叫咱记忆力不佳)。下面正式开始把。
一、建立springboot项目
1、打开IDEA点击spring initalizr
2、点击下一步
3、勾选springboot版本 选择web
4、完成springboot搭建 项目结构
5、maven中的jar包
<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>
<scope>test</scope>
</dependency>
6、检验是否成功 创建一个简单的HelloController
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
}
点击箭头启动项目
浏览器访问
在浏览器输入http://localhost:8080/hello 打印出hello 即创建springboot项目成功。
二、基础配置
1、springboot 配置application 推荐使用yml减少配置代码量
在resource下面建立一个application.yml配置
可以配置tomcat端口和项目根路径
在页面上输入 localhost:8080/vue/hello 即可访问
2、读取配置文件
创建一个 name值随意
@RestController
public class HelloController {
/**
* 读取配置文件
*/
@Value("${name}")
private String name;
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
@RequestMapping("/say")
public String say() {
return "hello world"+name;
}
}
在页面输入localhost:8080/vue/say 即可看到 打印信息 hello world老哥稳
3、读取对象信息 (如果值一多,我们可以使用对象获取配置文件信息)
建立一个Person对象
建立一个本地 Person获取配置文件person信息
Component :注入到容器
ConfigurationProperties :用于读取配置文件信息 person指名读取配置文件名称
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
@RestController
public class HelloController {
/**
* 读取配置文件
*/
@Value("${name}")
private String name;
@Autowired
private Person person;
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
@RequestMapping("/say")
public String say() {
return "hello world"+name;
}
@RequestMapping("/sayCar")
public String sayCar() {
return person.getId()+"hello world"+person.getName();
}
}
4、获取get 请求附带的值
RequestMapping 即可获取从页面获取过来的值
输入请求 localhost:8080/vue/value?id=10 在方法中即可获取到id的值
如果没有我们可以给定一个默认值defaultValue = "0"
@RequestMapping(value = "value" ,method = RequestMethod.GET)
public String getValue(@RequestParam(value = "id",required = false ,defaultValue = "0") Integer id) {
return "getValue:"+id.toString();
}
5、多配置文件 我们可以设置 spring.profiles.active指定让 springboot项目读取读取那一个配置文件,方便我们部署项目。active:可选择 prod dev等
三、数据库连接 jpa
maven依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
一些数据库配置
server:
port: 8088
servlet:
context-path: /vuedemo
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://127.0.0.1:3306/vuedemo?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
jpa:
show-sql: true
数据库
DROP TABLE IF EXISTS `car`;
CREATE TABLE `car` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11127 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
创建bean
@Entity
public class Car {
private String name;
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Integer id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
创建dao
public interface CarDao extends JpaRepository<Car,Integer> {
}
创建service impl
public interface CarService {
public List<Car> selectCarList();
public Car addCar(Car car);
public int deleteCar(Integer id);
}
@Service
public class CarServiceImpl implements CarService {
@Autowired
private CarDao carDao;
@Override
public List<Car> selectCarList() {
return carDao.findAll();
}
@Override
public Car addCar(Car car) {
return carDao.save(car);
}
@Override
public int deleteCar(Integer id) {
carDao.deleteById(id);
return 1;
}
}
创建 controll
/**
* ctrl +alt +b 快速查找子类实现
*/
@RestController
public class CarController {
@Autowired
private CarService carService;
@RequestMapping("/getCarList")
public List<Car> getCarList() {
return carService.selectCarList();
}
@RequestMapping(value = "/addCarList")
public Car addCarList(@RequestParam("name") String name){
Car car=new Car();
car.setName(name);
return carService.addCar(car);
}
@RequestMapping("/deleteCarList")
public int deleteCarList(@RequestParam("id") Integer id){
return carService.deleteCar(id);
}
}
一个简单的增删改查完成
查询
添加
删除
来源:oschina
链接:https://my.oschina.net/u/4361197/blog/3361277