學習東西需要記錄,不然很容易忘記。很久之前就學習了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); } }
一個簡單的增刪改查完成
查詢
添加
刪除