SpringBoot整合JDBC

1.创建一个springboot项目,特别需要注意的是:

 2.在resources中新建一个application.yml文件去编写jdbc的相关配置信息

 

 3.在测试类中编写相关代码,打印是否成功连接(输出为控制台中显示的内容)

 

 对于这个class com.zaxxer.hikari.HikariDataSource是一个比吃c3p0更快的一个东西

4.继续编写测试类,建立连接

 

 这个时候会报这样一个错(它代表时区异常):

 

 解决方案(在application。yml中加上):

 

 现在就可以正常运行了

 

 5.分析源码

5.1

 

 

 

 点进去之后是一个DataSourceProperties,那么同样对应的有一个DataSourceAutoConfiguration

看一下这个类

 

 6.创建一个controller并编写

6.1在这之前先看一下JdbcTemplate

1.即使不使用第三方第数据库操作框架,如 MyBatis等,Spring 本身也对原生的JDBC 做了轻量级的封装,即JdbcTemplate。

2.数据库操作的所有 CRUD 方法都在 JdbcTemplate 中。

JdbcTemplate主要提供以下几类方法:

1.execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

2.update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;

3.query方法及queryForXXX方法:用于执行查询相关语句;

4.call方法:用于执行存储过程、函数相关语句。

6.2继续编写我们的controller,完成增删查改的功能:

package com.yao.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
public class JDBCController {

    @Autowired
    JdbcTemplate jdbcTemplate;

    //查询数据库的所有信息
    //没有实体类,数据库中的东西怎么获得?
    @GetMapping("/userList")
    public List<Map<String,Object>> userList(){
        String sql = "select * from team";
        List<Map<String,Object>> list_maps = jdbcTemplate.queryForList(sql);
        return list_maps;
    }

    @GetMapping("/addUser")
    public String addUser(){
        String sql = "insert into team VALUE('第十组',30)";
        jdbcTemplate.update(sql);
        return "update-ok";
    }

    @GetMapping("/updateUser/{id}")
    public String updateUser(@PathVariable("id") String id){
        String sql = "update team set `分数`=? where `组号`='"+id+"'";
        //封装
        double score = 100.0;
        jdbcTemplate.update(sql,score);
        return "updateUser-ok";
    }

    @GetMapping("/deleteUser/{id}")
    public String deleteUser(@PathVariable("id") String id){
        String sql = "delete from team where `组号`='"+id+"'";
        System.out.println(sql);
        jdbcTemplate.update(sql);
        return "deleteUser-ok";
    }
}

l另外这里拓展一下:

这里可以加static

 

posted @ 2021-01-05 11:56  Yaoyaoo  阅读(608)  评论(0)    收藏  举报