cgb2106-day14 红太狼 2021-09-11 03:26 273阅读 0赞 ### 文章目录 ### * * 一,SpringMVC解析restful的请求参数 * * \--1,概述 * \--2,测试 * * 创建RunApp启动类 * 创建CarController类 * 创建前端网页文件 * 测试 * 二,SpringMVC解析post的请求参数 * * \--0,项目结构 * \--1,准备form表单 * \--2,准备Student类 * \--3,准备StudentController类 * \--4,利用jdbc把接受到的参数入库 * * 操作cgb2106的库, 创建tb\_student表(参考Student类) * 修改pom.xml文件,添加jdbc的jar包的坐标 * 写jdbc的代码 * \--5,测试 * \--6,总结 * 三,Git * * \--1,概述 * \--2,常用命令 * \--3,使用步骤 * \--4,检查 * \--5,日常操作 ## 一,SpringMVC解析restful的请求参数 ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70] ### –1,概述 ### 简化了get方式参数的写法 普通的get传递的参数 http://localhost:8080/car/get?id=100&name=张三 restful传递的参数 http://localhost:8080/car/get2/100/张三 ### –2,测试 ### #### 创建RunApp启动类 #### package cn.tedu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; //位置:必须在所有资源之上的包里 @SpringBootApplication public class RunApp { public static void main(String[] args) { SpringApplication.run(RunApp.class); } } #### 创建CarController类 #### package cn.tedu.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; //@Controller //@ResponseBody @RestController @RequestMapping("car") public class CarController { //注意1:: 参数列表里的参数类型,最好使用引用类型, //如果浏览器没有传值过来就用默认值,但使用基本类型会抛异常的 //解析普通的get传递的参数 //http://localhost:8080/car/get?id=100&name=张三 @RequestMapping("get") // public String get(int id,String name){ public String get(Integer id,String name){ return id+name ; } //解析restful传递的参数:简化了get方式参数的写法 //http://localhost:8080/car/get2/100/张三 @RequestMapping("get2/{id}/{name}") //{x}--通过{}获取访问路径中携带的参数,并且交给变量x保存 //@PathVariable -- 获取{}中间变量的值 public String get2(@PathVariable Integer id, @PathVariable String name){ return id+name; } //http://localhost:8080/car/get3/100/张三/red/9.9 @RequestMapping("get3/{a}/{b}/{c}/{d}") public String get3(@PathVariable Integer a, @PathVariable String b, @PathVariable String c, @PathVariable double d){ return a+b+c+d ; } } #### 创建前端网页文件 #### <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <a href="http://localhost:8080/car/get?id=100&name=张三">解析get的参数 </a> <a href="http://localhost:8080/car/get2/100/张三">解析restful风格的参数</a> <a href="http://localhost:8080/car/get3/100/张三/red/9.9">练习解析restful风格的参数</a> </body> </html> #### 测试 #### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 1] ![在这里插入图片描述][a2f6d9bdff3f42b28ae9e0beb9596de3.png] ## 二,SpringMVC解析post的请求参数 ## ### –0,项目结构 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 2] ### –1,准备form表单 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 3] <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> body{ font-size: 17px;/* 字号 */ background-color: lightgray; } /* 输入框 */ .a{ width: 320px; /* 宽度*/ height: 50px; /* 高度 */ font-size: 20px; /* 字号 */ } /* 保存按钮 */ input[type="submit"]{ /* 背景色 字的颜色 边框颜色 宽度 高度 */ background-color: #0000FF; border-color: #0000FF; color: white; width: 100px; height: 50px; font-size: 20px; /* 字号 */ } /* 取消按钮 */ input[type="button"]{ /* 背景色 字的颜色 边框颜色 宽度 高度 */ background-color: #FF69B4; border-color: #FF69B4; color: white; width: 100px; height: 50px; font-size: 20px; /* 字号 */ } </style> </head> <body> <a href="http://localhost:8080/car/get?id=100&name=张三">解析get的参数 </a> <a href="http://localhost:8080/car/get2/100/张三">解析restful风格的参数</a> <a href="http://localhost:8080/car/get3/100/张三/red/9.9">练习解析restful风格的参数</a> <!-- 利用表单,向服务器发送数据, 默认是get提交,通过method属性修改提交方式 action属性,指定提交的位置 --> <form method="post" action="http://localhost:8080/stu/add"> <table> <tr> <td> <h2>学生信息管理系统MIS</h2> </td> </tr> <tr> <td>姓名:</td> </tr> <tr> <td> <input class="a" type="text" placeholder="请输入姓名" name="name"> </td> </tr> <tr> <td>年龄:</td> </tr> <tr> <td> <input class="a" type="number" placeholder="请输入年龄" name="age"> </td> </tr> <tr> <td> 性别:(单选框) <input type="radio" name="sex" value="1"/>男 <input type="radio" name="sex" value="0"/>女 </td> </tr> <tr> <td> 爱好:(多选) <input type="checkbox" name="hobby" value="ppq"/>乒乓球 <input type="checkbox" name="hobby" value="ps"/>爬山 <input type="checkbox" name="hobby" value="cg"/>唱歌 </td> </tr> <tr> <td> 学历:(下拉框) <select name="edu"> <option value="1">本科</option> <option value="2">专科</option> <option value="3">博士</option> </select> </td> </tr> <tr> <td> 入学日期: <input type="date" name="intime"/> </td> </tr> <tr> <td> <input type="submit" value="保存"/> <input type="button" value="取消"/> </td> </tr> </table> </form> </body> </html> ### –2,准备Student类 ### package cn.tedu.pojo; import org.springframework.format.annotation.DateTimeFormat; import java.util.Arrays; import java.util.Date; //是Model层,用来封装数据,就是一个pojo(封装的属性+get/set) public class Student { //属性(成员变量):变量类型 变量名 //提交数据的类型 页面上name属性的值 private String name ; private Integer age ;//避免了一些异常 private Integer sex ; private String[] hobby ; private Integer edu ; //浏览器上提交的日期默认是String类型,2012/8/12,报错400 //@DateTimeFormat把String的日期转成Date日期 //pattern属性规定了日期的格式y表示年M表示月d表示日 @DateTimeFormat(pattern="yyyy-MM-dd") private Date intime; //get set tostring public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } public Integer getEdu() { return edu; } public void setEdu(Integer edu) { this.edu = edu; } public Date getIntime() { return intime; } public void setIntime(Date intime) { this.intime = intime; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", sex=" + sex + ", hobby=" + Arrays.toString(hobby) + ", edu=" + edu + ", intime=" + intime + '}'; } } ### –3,准备StudentController类 ### package cn.tedu.controller; import cn.tedu.pojo.Student; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; //是C层,控制层,用来接受请求和给出响应 @RestController @RequestMapping("stu") public class StudentController { @RequestMapping("add") public Object add(Student s){ //TODO 实现入库insert return s; } } ### –4,利用jdbc把接受到的参数入库 ### #### 操作cgb2106的库, 创建tb\_student表(参考Student类) #### CREATE TABLE tb_student( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(50), age INT, sex INT, hobby VARCHAR(100), edu INT, intime DATE ) #### 修改pom.xml文件,添加jdbc的jar包的坐标 #### <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>cgb2106boot03</artifactId> <groupId>cn.tedu</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>day14</artifactId> <dependencies> <!--添加jdbc的jar包依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.48</version> </dependency> </dependencies> </project> #### 写jdbc的代码 #### package cn.tedu.controller; import cn.tedu.pojo.Student; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.Arrays; //是C层,控制层,用来接受请求和给出响应 @RestController @RequestMapping("stu") public class StudentController { @RequestMapping("add") public Object add(Student s) throws Exception { //TODO 利用jdbc,实现入库 //注册驱动 Class.forName("com.mysql.jdbc.Driver"); //获取连接 String url="jdbc:mysql:///cgb2106?characterEncoding=utf8"; Connection conn = DriverManager.getConnection(url,"root","root"); //获取传输器 String sql = "insert into tb_student values(null,?,?,?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); //给SQL设置参数 ps.setObject(1,s.getName()); ps.setObject(2,s.getAge()); ps.setObject(3,s.getSex()); //s.getHobby()得到一个数组,不能直接存入数据库,需要变成串入库 ps.setObject(4, Arrays.toString( s.getHobby() ) ) ; ps.setObject(5,s.getEdu()); ps.setObject(6,s.getIntime()); //执行SQL ps.executeUpdate();//执行增删改的SQL System.out.println("数据插入成功!"); return s; } } ### –5,测试 ### ![在这里插入图片描述][d1ebb7755b1f4f4790647b1af18c74f3.png] ### –6,总结 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 4] ## 三,Git ## ### –1,概述 ### 是一个版本控制产品,用来实现资源的版本控制. 可以把资源随时上传到Git上,可以随时拉取下载 好处: 快速恢复到历史版本. 容错性高. 远程仓库: 是指 Gitee官网 的网址,存你已经传上去的资源 本地仓库: 是指你磁盘里的一个路径,存你即将要上传的资源 本地索引: 是指将要提交的数据建立索引,方便查找定位 工作空间: 保存了资源的位置 过程: 工作空间 -> 本地索引 -> 本地仓库 -> 远程仓库 ### –2,常用命令 ### add: 把工作空间的资源,添加到 本地索引 commit: 把本地索引的资源 提交到 本地仓库 push: 把本地仓库的资源 推送到 远程仓库 pull/clone: 把资源从远程仓库下载下来 ### –3,使用步骤 ### 1, 安装Git软件 2, 在Gitee官网注册账号,使用账号上传资源 3, 创建本地仓库, 就是在你的磁盘里建一个文件夹,存放即将上传的资源 仅供参考: D:\\workspace\\gitee\\cgb2106 4, 创建远程仓库, 去Gitee官网创建,存本地仓库上传的资源 Gitee官网右上角的加号,点新建仓库,设置仓库名称选成开源,ok 5, 需要在本地仓库那里,执行一些Git命令. git config --global user.name "cgblpx" #设置了Gitee注册的用户名 git config --global user.email "2250432165@qq.com" #设置了Gitee注册的邮箱 git config --list # 查看设置信息 git init #初始化一个Git的环境 #在你的本地仓库创建一个文件,准备上传它 git add 1.txt #添加,从工作空间到本地索引 git commit -m "first commit" #从本地索引提交到本地仓库 git remote add origin https://gitee.com/cgblpx/cgb2106test.git #添加到指定远程仓库里 git push -u origin master #从本地仓库推送到远程仓库 Username for 'https://gitee.com': #输入自己注册的账号 Password for 'https://cgblpx@gitee.com': #输入自己注册的密码 ### –4,检查 ### 刷新Gitee官网就有刚传上去的资源啦 ### –5,日常操作 ### 1, 把你要提交的资源拷贝到 本地仓库 2, 在本地仓库处, 执行以下Git命令提交资源 3, 把远程仓库的资源下载到本地 git add . git commit -m "test" git push -u origin master git clone 再加上要下载的资源的网址 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70]: /images/20210911/6021f92b88f94908b5b0ab4ae7779e56.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 1]: /images/20210911/6a081470a6cc4fd0bd22351ba5c38ebe.png [a2f6d9bdff3f42b28ae9e0beb9596de3.png]: /images/20210911/b9ea47eaa9a9412a83ebf7be54a20d11.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 2]: /images/20210911/fc6bb324a17546e3b527dbec069ff3e6.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 3]: /images/20210911/1c1387c7b22e4faf95061541ff1a7206.png [d1ebb7755b1f4f4790647b1af18c74f3.png]: /images/20210911/d5824ab74b7f4a2e9463ca1050cc2c61.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 4]: /images/20210911/1dffdc68719f4920b1f8b82163deea3b.png
相关 cgb2106-day18 文章目录 一,Mybatis入门案例 \--0,导入mybatis的jar包 \--1,核心配置文件 港控/mmm°/ 2021年09月11日 03:28/ 0 赞/ 222 阅读
相关 cgb2106-day12 文章目录 一,ElementUI的表单 \--1,测试 \--2,效果 二,Maven 「爱情、让人受尽委屈。」/ 2021年09月11日 03:24/ 0 赞/ 301 阅读
相关 cgb2106-day10 文章目录 一,Vue的基础语法 \--1,运算符 \--2,定义函数 \--3,Vue解析各种 快来打我*/ 2021年09月11日 03:24/ 0 赞/ 238 阅读
相关 cgb2106-day11 文章目录 一,Vue脚手架 \--1,执行以下命令安装并检验 \--2,创建Vue项目的过程 二,自定 朱雀/ 2021年09月11日 03:24/ 0 赞/ 303 阅读
相关 cgb2106-day08 文章目录 一,模拟服务器解析数据 二,实现CSS代码和HTML代码的分离 \--1,新建css文件 \ 古城微笑少年丶/ 2021年09月11日 03:22/ 0 赞/ 305 阅读
相关 cgb2106-day01 文章目录 一,数据库 \--1,概述 \--2,Mysql数据库的安装 \--3,Mysql数 系统管理员/ 2021年09月11日 03:14/ 0 赞/ 253 阅读
还没有评论,来说两句吧...