学习东西需要记录,不然很容易忘记。很久之前就学习了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); } }
一个简单的增删改查完成
查询
添加
删除