cgb2105-day14(代码片段)

cgblpx cgblpx     2022-12-07     138

关键词:

一,前端后大联动

–1,需求

接受浏览器发来的请求数据,解析,利用jdbc入库

–2,步骤

1,利用jdbc入库,设计表设计表的字段
2,编写前端的代码,利用ajax把请求参数携带着访问服务器
3,编写后端的代码,先加jar包的依赖,再利用jdbc发起insert的语句

–3,创建表

在这里插入图片描述

–4,创建前端网页,写ajax代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 ajax提交数据并入库</title>
		
		<script src="old/jquery-1.8.3.min.js"></script>
		<script>
			function fun()
				$.ajax(
					type: "get" , //要使用的请求方式
					url:"http://localhost:8080/car/save" , //要访问的服务器程序
					data:   //请求参数
						"id":"10", 
						"name":"BMW",
						"price":"9.9" 
					,
					success: function(data) //成功时的方案 
						console.log(data);
						console.log(data.id);
						alert(100);
					
				)
			
		</script>
	</head>
	<body>
		
		<a onclick="fun()" href="#">点我提交数据</a>
		
	</body>
</html>

–5,创建后端程序,接受请求入库

项目结构

在这里插入图片描述

编写启动类

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);
    


编写Car类

package cn.tedu.pojo;
//充当MVC的M层,Model,用来封装数据(最好和表里的字段数据一致)
public class Car 
    private Integer id ;
    private String name ;
    private String type ;
    private String color ;
    private Double price ; 
   
    //get set toString
    public Integer getId() 
        return id;
    
    public void setId(Integer id) 
        this.id = id;
    
    public String getName() 
        return name;
    
    public void setName(String name) 
        this.name = name;
    
    public String getType() 
        return type;
    
    public void setType(String type) 
        this.type = type;
    
    public String getColor() 
        return color;
    
    public void setColor(String color) 
        this.color = color;
    
    public Double getPrice() 
        return price;
    
    public void setPrice(Double price) 
        this.price = price;
    
    @Override
    public String toString() 
        return "Car" +
                "id=" + id +
                ", name='" + name + '\\'' +
                ", type='" + type + '\\'' +
                ", color='" + color + '\\'' +
                ", price=" + price +
                '';
    


编写CarController类

package cn.tedu.controller;

import cn.tedu.pojo.Car;
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;

//充当MVC里的C,Controller控制器,用来接受请求和给出响应
@RestController
@RequestMapping("car")
public class CarController 

    @RequestMapping("save")
    public void save(Car c) throws Exception 
        //利用jdbc入库,入库的数据从c获取
        //1,注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2,获取连接
        String url = "jdbc:mysql:///cgb2105?characterEncoding=utf8" ;
        Connection conn = DriverManager.getConnection(url,"root","root");
        //3,获取传输器
        String sql = "insert into car values(?,?,?,?,?)" ;
        //?是占位符,个数和表里的字段个数匹配,顺序和字段顺序一致
        PreparedStatement ps = conn.prepareStatement(sql);
        //4,执行SQL
        ps.setInt(1 , c.getId());//把请求携带来的参数,拿到,给第1个?设置值
        ps.setString(2, c.getName());//把请求携带来的参数,拿到,给第2个?设置值
        ps.setString(3, c.getType());//把请求携带来的参数,拿到,给第3个?设置值
        ps.setString(4, c.getColor());//把请求携带来的参数,拿到,给第4个?设置值
        ps.setDouble(5, c.getPrice());//把请求携带来的参数,拿到,给第5个?设置值
        ps.executeUpdate();
        //5,释放资源
        ps.close();
        conn.close();
        System.out.println("恭喜您,操作成功!!!!");
    



–6,测试

先启动服务器,用前端网页,发起请求,访问服务器
在这里插入图片描述
在这里插入图片描述

–7,总结

在这里插入图片描述

二,SpringMVC框架解析post提交的数据

–1,get和post的区别

get的数据都是拼接的形式,在地址栏展示。相对来说不安全,长度受限
post 属性相对安全,容量比较大

–2,需求

通过post方式,提交学生数据

–3,开发步骤

编写前端程序

创建studentform.html的页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>测试 springmvc解析post数据</title>
		
		<style>
			/* 修饰 输入框的宽度高度 */
			.a /* 选中网页中class=a的元素*/
				width: 320px;
				height: 30px;
			
			/* 修饰保存按钮 */
			input[type="submit"]
					background-color: blue; /* 背景色 */
					border-color: blue;/* 边框的颜色 */
					color:white; /* 字的颜色 */
					height: 30px;
					width: 50px;
			
			/* 修饰取消按钮 */
			input[type="button"]
					background-color: hotpink; /* 背景色 */
					border-color: hotpink; /* 边框的颜色 */
					color:white; /* 字的颜色 */
					height: 30px;
					width: 50px;
			
		</style>
	</head>
	<body>
	    <!-- form表单,可以把数据提交给服务器 
				method指定提交数据的方式
				action指定数据要提价给谁处理
		-->
		<form method="post" action="http://localhost:8080/student/add">
			<table>
				<tr>
					<td>
						<h1>学生信息管理系统MIS</h1>
					</td>
				</tr>
				<tr>
					<td> 姓名:</td>
				</tr>
				<tr>
					<td> 
						<input class="a" type="text" placeholder="请输入姓名..." name="user" />
					</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="0" /><input type="radio" name="sex" value="1"   /></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>


编写后端程序

在这里插入图片描述

创建Student类,充当了模型层

package cn.tedu.pojo;
import java.util.Arrays;
import java.util.Date;
//Model层,用来封装数据
//类里的属性名 ---和页面中 name属性的值  必须相同 !!!否则不会封装数据
public class Student 
    private String user ;
    private Integer age ;
    private Integer sex ;
    private String[] hobby ; //保存了页面提价的多个爱好
    private Integer edu;
    private Date intime;

    //get set toString...
    public String getUser() 
        return user;
    

    public void setUser(String user) 
        this.user = user;
    

    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;
    
    //页面提交的日期都是String类型,需要自己变成Date类型,否则页面永远400错误
    @DateTimeFormat(pattern="yyyy-MM-dd" )
    public Date getIntime() 
        return intime;
    

    public void setIntime(Date intime) 
        this.intime = intime;
    

    @Override
    public String toString() 
        return "Student" +
                "user='" + user + '\\'' +
                ", age=" + age +
                ", sex=" + sex +
                ", hobby=" + Arrays.toString(hobby) +
                ", edu=" + edu +
                ", intime=" + intime +
                '';
    


创建StudentController类,充当了控制层

package cn.tedu.controller;

import cn.tedu.pojo.Student;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("student")
public class StudentController 

    @RequestMapping("add")
    public Student add(Student s)
        cgb2105-day10(代码片段)

文章目录一,JS对象二,DOM--1,作用--2,测试三,Jquery--1,概述--2,使用步骤--3,入门案例--4,jQuery的文档就绪标题一,JS对象<!DOCTYPEhtml><html> <head> < 查看详情

cgb2105-day12(代码片段)

文章目录一,SpringBoot--1,创建SpringBoot项目--2,配置maven--3,启动服务器--4,在服务器添加资源--5,测试二,SpringMVC--1,概述--2,MVC设计模式--3,工作原理三,入门案例--1࿰ 查看详情

cgb2105-day18(代码片段)

文章目录一,动态SQL--1,需求--2,开发步骤创建module修改pom.xml创建核心配置文件创建Dept类创建映射文件创建测试类二,Mybatis的接口开发结构--1,修改映射文件,把namespace的值改成接口的全路径--2,创... 查看详情

cgb2105-day13(代码片段)

文章目录一,SpringMVC–1,需求–2,创建module–3,创建启动类–4,创建资源–5,测试二,改造--1,创建Car类--2,改造CarController--3,改造网页--4,测试三,SpringMVC解析get请求 查看详情

cgb2105-day15(代码片段)

文章目录一,修改端口号--1,创建application.yml文件--2,创建数据二,SpringBoot热部署--1,添加jar包的依赖--2,配置选项--3,改完资源,直接build三,Lombok--1,概述--2,步骤安装插件添加jar 查看详情

cgb2105-day17(代码片段)

文章目录一,Mybatis--1,概述--2,入门案例项目结构修改pom文件,添加mybatis的jar包依赖创建核心配置文件,指定连接数据库的参数创建映射文件,写SQL创建User类修改核心配置文件,加入映射文件创建测... 查看详情

cgb2105-day16(代码片段)

文章目录一,DI--1,概述--2,测试创建Dept类创建User类测试二,SpringDI--1,创建Teacher类--2,创建Student类--3,创建核心配置文件,配置包扫描的路径--4,测试--5,总结三,MVC项目--1࿰ 查看详情

cgb2105-day11(代码片段)

文章目录一,JSON--1,概述--2,测试二,AJAX--1,概述--2,语法--3,测试三,Maven--1,概述--2,核心组件--3,使用步骤标题标题一,JSON–1,概述JSON是一种轻量级的数据交换格式。指 查看详情

cgb2106-day14(代码片段)

文章目录一,SpringMVC解析restful的请求参数--1,概述--2,测试创建RunApp启动类创建CarController类创建前端网页文件测试二,SpringMVC解析post的请求参数--0,项目结构--1,准备form表单--2,准备Student类--3,准备StudentController类--4,利用jdbc把接受到的... 查看详情

cgb2107-day14(代码片段)

文章目录一,Maven--1,概述--2,使用步骤二,在IDEA里用maven--1,创建Maven工程--2,配置maven--3,修改pom.xml文件,添加jar包的坐标--4,检查本地仓库5,常用的maven命令三,SpringBoot--1,概述--2,项目结构--3,创建SpringBoot工程--4,给工程配置maven信息--5,spring... 查看详情

cgb2109-day14(代码片段)

文章目录一,Vue组件的练习--1,测试二,Vue路由Router--1,概述--2,测试--3,总结--4,练习三,Vue的ajax--1,概述--2,测试四,Vue-cli--1,概述--2,安装vue-cli1,安装原因2,安装nodejs.mis的应用程序3,验证nodejs是否安装:4,安装脚手架:五,创建Vue项目!!1,首先创... 查看详情

cgb2108-day14(代码片段)

文章目录一,练习vue路由--1,代码--2,总结二,Vue-cli脚手架--1,概述--2,安装1,安装Nodejs(下一步下一步),并检查(在DOS窗口里执行DOS命令node-v)2,修改npm的镜像(下载的快):3,正式安装(没有飘红ERR就行了):4,下载vue项目5,检测vue项目是否下载完... 查看详情

cgb2110-day14(代码片段)

...的vue的工作空间文件夹里,执行以下的命令来下载vue项目代码.–3,测试也可以直接把压缩包,解压到你的vue的工作空间(E:\\workspace\\vue)启动项目必须进入到项目目录中,再执行启动命令<指即将启动指定项目>打开浏览器测试二,自... 查看详情

cgb2106-day05(代码片段)

文章目录一,视图--1,概述--2,测试二,SQL练习--1,测试三,SQL优化的方案--1,总结四,JDBC--1,概述--2,使用步骤--3,导入jar包--4,入门案例一,视图–1,概述可以把SQL的查询结果缓存起来,存入视图中.好处:简化了SQL的编写坏处:没法做SQL的优化,占... 查看详情

cgb2108-day05(代码片段)

文章目录一,作业--1,测试二,SQL面试题--1,测试三,JDBC--1,概述--2,使用步骤--3,入门案例--4,JDBC的练习一,作业–1,测试#SQL的练习:#练习1:查询部门编号是1的员工姓名deptempSELECTenameFROMempWHEREdeptno=(SELECTdeptnoFROMdeptWHEREdname='java开发... 查看详情

cgb2109-day04(代码片段)

文章目录一,SQL练习--1,测试二,字段约束--1,默认约束--2,检查约束--3,外键约束!三,标题一,SQL练习–1,测试#练习1:依次按照多个条件排序,asc升序,desc降序SELECT*FROMempORDERBYsalDESC,enameASCSELECT*FROMempORDERBYdeptnoDESC,enameASC#练习2:统计每个岗位... 查看详情

cgb2108-day06(代码片段)

...拟用户登录--3,JDBC的练习--4,JDBC的总结--5,修改释放资源的代码二,HTML--1,概述--2,入门案例一,JDBC–1,创建工具类packagecn.tedu.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;//提供丰富的方法,方便的jdbc操作publiccl 查看详情

cgb2108-day08(代码片段)

文章目录一,表单提交数据--1,代码二,CSS--1,概述--2,入门案例--3,基础选择器--4,高级选择器三,盒子模型--1,概述--2,练习三,一,表单提交数据–1,代码<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title>测试表... 查看详情