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


Posted in Java/Android onJune 30, 2021

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&amp;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();
    }

到此这篇关于Spring mvc是如何实现与数据库的前后端的连接操作的?的文章就介绍到这了,更多相关Spring mvc与数据库的前后端的连接内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
教你用Java Swing实现自助取款机系统
Jun 11 Java/Android
总结一些Java常用的加密算法
Jun 11 Java/Android
在Java中Collection的一些常用方法总结
Jun 13 Java/Android
java Nio使用NioSocket客户端与服务端交互实现方式
Jun 15 Java/Android
浅谈@Value和@Bean的执行顺序问题
Jun 16 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
logback如何自定义日志存储
Aug 30 Java/Android
java项目构建Gradle的使用教程
Mar 24 Java/Android
零基础学java之循环语句的使用
Apr 10 Java/Android
JAVA 线程池(池化技术)的实现原理
Apr 28 Java/Android
Java对文件的读写操作方法
Apr 29 Java/Android
java开发双人五子棋游戏
May 06 Java/Android
HashMap实现保存两个key相同的数据
Jun 30 #Java/Android
spring boot项目application.properties文件存放及使用介绍
springboot项目以jar包运行的操作方法
Springboot使用Spring Data JPA实现数据库操作
Jun 30 #Java/Android
如何给HttpServletRequest增加消息头
解决ObjectMapper.convertValue() 遇到的一些问题
Jun 30 #Java/Android
Java基础之详解HashSet的使用方法
You might like
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
php获取微信openid方法总结
2019/10/10 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
Python实现比较两个列表(list)范围
2015/06/12 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
python实现udp传输图片功能
2020/03/20 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
服务员岗位责任制
2014/02/11 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
终止合同协议书
2014/04/17 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
北大自主招生自荐信
2015/03/04 职场文书
爱护公物主题班会
2015/08/17 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers