From a68e239971086ea264a72d92afed9493df5dd094 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=B9=E6=AD=A3=E6=B3=A2?= <1938448998@qq.com>
Date: Thu, 4 Jan 2024 21:00:55 +0800
Subject: [PATCH] 0104
---
.../20240103 SpringMVC.md" | 150 +++++++++++++++++
.../20240104 SpringMVC.md" | 154 ++++++++++++++++++
2 files changed, 304 insertions(+)
create mode 100644 "09 \346\233\271\346\255\243\346\263\242/20240103 SpringMVC.md"
create mode 100644 "09 \346\233\271\346\255\243\346\263\242/20240104 SpringMVC.md"
diff --git "a/09 \346\233\271\346\255\243\346\263\242/20240103 SpringMVC.md" "b/09 \346\233\271\346\255\243\346\263\242/20240103 SpringMVC.md"
new file mode 100644
index 0000000..c77bc56
--- /dev/null
+++ "b/09 \346\233\271\346\255\243\346\263\242/20240103 SpringMVC.md"
@@ -0,0 +1,150 @@
+## 1. 接收请求中的json数据
+
+1.添加json数据转换相关坐标
+
+~~~ xml
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.11.3
+
+~~~
+
+2.开启自动转换json数据的支持
+
+~~~ java
+@Configuration
+@ComponentScan("com.mdd.controller")
+// 该注解整合了多个功能,此处仅使用其中一部分功能,即json数据进行自动类型转换
+@EnableWebMvc
+public class SpringMvcConfig {
+}
+~~~
+
+3.设置接收json数据
+
+~~~ java
+// 接收JSON数据
+@RequestMapping("/listJSON")
+@ResponseBody
+// @RequestParam 指明为集合,不是对象
+public String getJSON(@RequestBody List list){
+ System.out.println("JSON参数传递 ===>"+list);
+ return "ok";
+}
+~~~
+
+4.响应JSON数据
+
+~~~ java
+// 响应JSON数据
+@RequestMapping("/listResponseJSON")
+@ResponseBody
+// @RequestParam 指明为集合,不是对象
+public List getResponseJSON(@RequestBody List list){
+ System.out.println("JSON参数传递 ===>"+list);
+ return list;
+}
+~~~
+
+@RequestParam用于接收url地址传参
+
+@RequestBody用于接收json数据
+
+5.日期类型参数传递
+
+~~~ java
+// 时间类型
+@RequestMapping("/data")
+@ResponseBody
+// @DateTimeFormat 规定日期类型的格式
+public String getData(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date){
+ System.out.println(date);
+ return "ok";
+}
+~~~
+
+## 2. REST风格
+
+REST(Representational State Transfer),表现形式状态转换
+
+- 传统风格资源描述形式
+
+ http://localhost/user/getById?id=1
+
+ http://localhost/user/saveUser
+
+- REST风格描述形式
+
+ http://localhost/user/1
+
+ http://localhost/user
+
+优点:隐藏资源的访问行为,无法通过地址得知对资源是何种操作书写简化
+
+### 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
+
+http://localhost/users 查询全部用户信息 GET(查询)
+
+http://localhost/users/1 查询指定用户信息 GET(查询)
+
+http://localhost/users 添加用户信息 POST(新增/保存
+
+http://localhost/users 修改用户信息 PUT(修改/更新)
+
+http://localhost/users/1 删除用户信息 DELETE(删除)
+
+```java
+
+案例:
+// 使用 REST风格简化代码
+@RestController
+//@RequestMapping("users")
+public class userController {
+
+ // 查询所有用户
+ @RequestMapping(value = "/users",method = RequestMethod.GET)
+ @ResponseBody
+ public String selectAll(){
+ System.out.println("selectAll is ok...");
+ return "selectAll is ok...";
+ }
+
+ // 新增用户
+ @RequestMapping(value = "/users",method = RequestMethod.POST)
+ @ResponseBody
+ public String save(){
+ System.out.println("user save is ok...");
+ return "user save is ok...";
+ }
+
+ // 根据id查询用户
+ @RequestMapping(value = "/users/{id}",method = RequestMethod.GET)
+ @ResponseBody
+ // @PathVariable 绑定路径参数
+ public String selectById(@PathVariable Integer id){
+ System.out.println("selectById is ok...");
+ return "selectById is ok..."+id;
+ }
+
+ // 根据id修改用户
+ @RequestMapping(value = "/users/{id}",method = RequestMethod.PUT)
+ @ResponseBody
+ // @PathVariable 绑定路径参数
+ public String updateById(@PathVariable Integer id){
+ System.out.println("updateById is ok...");
+ return "updateById is ok..."+id;
+ }
+
+ // 根据id删除用户
+ // 根据id修改用户
+ @RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
+ @ResponseBody
+ // @PathVariable 绑定路径参数
+ public String deleteById(@PathVariable Integer id){
+ System.out.println("deleteById is ok...");
+ return "deleteById is ok..."+id;
+ }
+}
+```
+
diff --git "a/09 \346\233\271\346\255\243\346\263\242/20240104 SpringMVC.md" "b/09 \346\233\271\346\255\243\346\263\242/20240104 SpringMVC.md"
new file mode 100644
index 0000000..75d4250
--- /dev/null
+++ "b/09 \346\233\271\346\255\243\346\263\242/20240104 SpringMVC.md"
@@ -0,0 +1,154 @@
+## REST风格
+
+REST(Representational State Transfer),表现形式状态转换
+
+- 传统风格资源描述形式
+
+ http://localhost/user/getById?id=1
+
+ http://localhost/user/saveUser
+
+- REST风格描述形式
+
+ http://localhost/user/1
+
+ http://localhost/user
+
+优点:隐藏资源的访问行为,无法通过地址得知对资源是何种操作书写简化
+
+### 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
+
+http://localhost/users 查询全部用户信息 GET(查询)
+
+http://localhost/users/1 查询指定用户信息 GET(查询)
+
+http://localhost/users 添加用户信息 POST(新增/保存
+
+http://localhost/users 修改用户信息 PUT(修改/更新)
+
+http://localhost/users/1 删除用户信息 DELETE(删除)
+
+# 案例
+
+SpringConfig
+
+```java
+package com.mdd.config;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@ComponentScan({"com.mdd.mapper","com.mdd.service"})
+@Import({JdbcConfig.class, MybatisConfig.class})
+public class SpringConfig {
+}
+
+```
+
+MybatisConfig
+
+```java
+package com.mdd.config;
+
+import com.sun.deploy.security.MSCredentialManager;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.mapper.MapperScannerConfigurer;
+
+import javax.sql.DataSource;
+
+public class MybatisConfig {
+ public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
+ SqlSessionFactoryBean sql = new SqlSessionFactoryBean();
+ sql.setTypeHandlersPackage("com.mdd.domain");
+ sql.setDataSource(dataSource);
+ return sql;
+ }
+
+ public MapperScannerConfigurer mc(){
+ MapperScannerConfigurer mapp = new MapperScannerConfigurer();
+ mapp.setBasePackage("com.mdd.mapper");
+ return mapp;
+ }
+}
+
+```
+
+JdbcConfig
+
+```java
+package com.mdd.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.context.annotation.Bean;
+
+import javax.sql.DataSource;
+
+public class JdbcConfig {
+ @Bean
+ public DataSource dataSource(){
+ DruidDataSource dr = new DruidDataSource();
+ dr.setDriverClassName("com.mysql.cj.jdbc.Driver");
+ dr.setUrl("jdbc:mysql:///user01");
+ dr.setUsername("root");
+ dr.setPassword("123456");
+ return dr;
+ }
+}
+
+```
+
+BrandController
+
+```java
+package com.mdd.controller;
+
+import com.mdd.domian.Brand;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+@RequestMapping("/brands")
+public class BrandController {
+ @PostMapping
+ public String addBrand(@RequestBody Brand brand){
+ System.out.println("添加了一条数据==》"+brand);
+ return "add ok!";
+ }
+
+ @DeleteMapping("/{id}")
+ public String deleteBrand(@PathVariable Integer id){
+ System.out.println("删除了一条数据==》"+id);
+ return "delete ok!";
+ }
+
+ @PutMapping
+ public String updateBrand(@RequestBody Brand brand){
+ System.out.println("修改了一条数据==》"+brand);
+ brand.setName("老赵");
+ System.out.println("修改成功!");
+ return "update ok!";
+ }
+
+ @GetMapping
+ public List getBrand(Brand brand){
+ ArrayList brands = new ArrayList();
+ brands.add(new Brand(1,"你好","男性",18));
+ brands.add(new Brand(2,"你好2","女性",38));
+ brands.add(new Brand(3,"你好3","男性",28));
+ brands.add(new Brand(4,"你好3","女性",48));
+ return brands;
+ }
+
+ @GetMapping("/{id}")
+ public Brand gettBrand(@PathVariable Integer id){
+ System.out.println("查询到一条数据==》"+id);
+ return new Brand(id,"你好369","女性",48);
+ }
+}
+
+```
+
--
Gitee