java中的接口是类吗
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~