springmvc怎么连接数据库?具体实操技巧

Spring MVC 角色划分清晰,分工明细,是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,并切实现在主流的开发框架,那springmvc怎么连接数据库?下面来我们就来给大家讲解一下。

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连接数据库可以按照以上的步骤进行,将其连接好,我们才能正确读取数据,进行项目开发!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

java终止程序语句怎么写?Java语句有哪些?

java就业前景饱和了吗?Java就业领域有哪些?

json数据如何使用?json数据的简单使用及处理方法