22.0、springboot-回顾整合JDBC的使用

22.0、springboot-回顾整合JDBC的使用

简介:

      对于数据库访问层,无论是SQL(关系型数据库)还是NOSQL(非关系型数据库),SpringBoot底层都是采用Spring Data的方式进行统一处理。

首先要在pom.xml中引入JDBC和MySQL的两个依赖:

<!--JDBC-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--MySQL-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

创建一个application.yaml文件中配置如下内容:

spring:
  datasource:
    username: root
    password: root
#    如果这里时区报错在数据库名?后加上serverTimezone=UTC即可解决
    url: jdbc:mysql://localhost:3306/jdbcmysql?useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.jdbc.Driver

        我们可以在测试类中用DataSource接口中的getClass()去可以查看到默认的数据源是hikari,这个数据源目前相比较其他来说是最快的

        在springboot中我们可以看到有大量的xxxtemplate这些都是springboot已经帮我们装配好的模板bean,拿来即用

   在springboot-autoconfiguration中可以找到一个jdbc的文件夹下有一个叫做JdbcTemplateAutoConfiguration点进去可以看到有一个被@Bean注释的类叫做JdbcTemplate我们可以直接使用。

接下来我们用JdbcTemplate来回顾一下如何操作数据库:创建一个MySqlController.java

package com.hkl.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;

@RestController
public class MySqlController {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @RequestMapping("/selectall")
    public List<Map<String,Object>> selectall() {
        String sql = "select * from user";
        List<Map<String,Object>> listobject = jdbcTemplate.queryForList(sql);
        return listobject;
    }
    @RequestMapping("/addone")
    public String add() {
        String sql = "insert into user(username,user,password) values('小澜','1303','13421356')";
        jdbcTemplate.update(sql);
        return "add-OK";
    }
    @RequestMapping("/modifyuser/{user}")
    public String modify(@PathVariable("user")String user){
        String sql = "update jdbcmysql.user set username=?,password=? where user="+user;
        //数据封装
        Object o[] = new Object[2];
        o[0] = "123132132";
        o[1] = "zzzzzzz";
        jdbcTemplate.update(sql,o);
        return "modify-OK";
    }
    @RequestMapping("/delete/{user}")
    public String delete(@PathVariable("user")String user) {
       String sql = "delete from user where user="+user;
       jdbcTemplate.update(sql);
        return "delete-OK";
    }
}

以上操作完全没有用到Dao层Service层只用到了Controller层来对数据库进行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值