Spring mvc是如何实现与数据库的前后端的连接操作的?

网友投稿 277 2022-10-14


Spring mvc是如何实现与数据库的前后端的连接操作的?

Spring mvc与数据库的前后端的连接

springboot是基于maven的基础上管理jar包的,只不过是使用springboot下载jar包只需选中即可,就会自动的在pom.xml文件中配置组件

在pom文件中的jar包的快捷键:右键--->generate---->depency---->搜索jar包

如果在前后端传参数是输入了参数却返回null , 则说明属性的名字(id,name等)写错了

启动类:注意 ,启动类必须在启动类中进行执行.必能在idea的上面进行启动,否则会启动其他的启动类导致报错

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类(相当于model层)

注意:这里使用的是构造方法 主要的作用是方便new

package cn.tedu.pojo;

//Model用来封装数据

public class Car {

private int id;

private String name;

private double price;

//Constructor构造方法,用来方便的new

public Car(){}

public Car(int id, String name, double price) {

this.id = id;

this.name = name;

this.price = price;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

}

使用三种方式  < 对象 > 进行传参数;注意:使用此类型进行设置值必须有构造方法

对象的地址值:http://localhost:8080/car/get

package cn.tedu.controller;

//MVC里的C层,用来接受请求和做出响应(springmvc)

import cn.tedu.pojo.Car;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController//接受请求,并把json数据返回

@RequestMapping("car") //规定了url地址的写法

public class CarController {

//方式一值会在网页中出现

@RequestMapping("get")

public Car get(){

Car c = new Car(10,"BMW",19.9); //出发钩造函数,此处触发的是含参构造;

return c ;

}

//方式二值会在网页中出现

@RequestMapping("save3")

public Car save() {

car.setAge(213);

car.setSex("男");

car.setId(32);

car.setPrice(32);

return car;

}

方式三这种方式的值会在idea中打印不会再网页中出现

@RequestMapping("save3")

public Car save() {

car.setAge(213);

car.setSex("男");

car.setId(32);

car.setPrice(32);

System.out.println(car);

}

使用return(值会网页中出现)的方式

package cn.tedu.controller;

import cn.tedu.pojo.Car;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import javax.naming.Name;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

//这是一个c层用来接收请求和做出响应

@RestController

//@RequestMapping("car")//规定了url的写法此时的值可以任意写

public class Controller {

@RequestMapping("replace")

public String replace(){

// System.out.println(id+name+age);

return "hkjds";

}

//方式二值会在网页中出现

@RequestMapping("save3")

public Car save() {

car.setAge(213);

car.setSex("男");

car.setId(32);

car.setPrice(32);

return car;

}

}

}

使用普通的get的方法进行上传

package cn.tedu.controller;

import cn.tedu.pojo.Car;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import javax.naming.Name;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

//这是一个c层用来接收请求和做出响应

@RestController

//@RequestMapping("car")//规定了url的写法此时的值可以任意写

public class Controller {

@RequestMapping("get2")

public void get(Integer id,String name){//此处使用int类型必须赋值 引用类型不用必须赋值最好使用引用类型

System.out.println(id+name);

}

@RequestMapping("get")

public void get(Integer id){//此处使用int类型必须赋值 引用类型不用必须赋值

System.out.println(id);

}

restful风格进行传参数

restful和普通的get的方法的区别:restful相对比较安全,写法比较简单

restful的地址值的:http://localhost:8080/car2/get2/10/jack/9

其他的url地址值://http://localhost:8080/car/get5?id=10&name=jack&price=9.9

package cn.tedu.controller;

import cn.tedu.pojo.Car;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

@RequestMapping("car3")

//使用restful风格

public class CarController {

@RequestMapping("get2/{sex}/{id}/{name}")//此地方的参数顺序必须和下面以及地址值都必须一样

public void get2(@PathVariable String sex,

@PathVariable Integer id,

@PathVariable String name){

System.out.println("数据插入成功"+sex+name+id);

// System.out.println("数据插入成功"+name+id);

}

}

spring mvc框架进行传参数

package cn.tedu.controller;

import cn.tedu.pojo.Car;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import javax.naming.Name;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

//这是一个c层用来接收请求和做出响应

@RestController

//@RequestMapping("car")//规定了url的写法此时的值可以任意写

public class Controller {

//使用框架接收网站参数

@RequestMapping("get3")

public void get3(Car car){

System.out.println(car.getSex()+car.getName()+car.getId());

}

}

前后端参数传入并且将数据传入到数据库中

package cn.tedu.controller;

import cn.tedu.pojo.Car;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import org.yaml.snakeyaml.events.Event;

import javax.naming.Name;

import java.sql.*;

import java.util.Scanner;

@RestController

@RequestMapping("user")

public class UserContoller {

@RequestMapping("save")

public void save(Integer id,String name,Integer age) throws Exception {

System.out.println(id+name+age);

Class.forName("com.mysql.jdbc.Driver");

//获取连接

String url ="jdbc:mysql:///cgb2104?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";

Connection conn = DriverManager.getConnection(url,"root","root");

//获取传输器

// String sql= "insert into user(id,name) values(?,?)";//给指定的字段设置值

String sql= "insert into user values(?,?,?)";//所有字段设置值

PreparedStatement ps = conn.prepareStatement(sql);

//给SQL设置参数

ps.setInt(1,id);//给第一个?设置值

ps.setString(2,name);//给第二个?设置值

ps.setInt(3,age);//给第三个?设置值

//执行SQL

int rows = ps.executeUpdate();

//释放资源 -- OOM(OutOfMemory)

ps.close();

conn.close();

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:流媒体传输协议之 RTP(下篇)
下一篇:流媒体传输协议之 RTP (上篇)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~