zoukankan      html  css  js  c++  java
  • 6.1 Springboot整合JDBC

    一.整合原生的JDBC

    1.步骤:

    • 创建新项目,引入模块

    • 添加数据库

    • 编写配置文件

    • 测试连接是否成功

    • 编写控制器CURD

    • 测试

    2.创建新项目,引入模块

    (1)关键需要引入JDBC API和MySQL Driver,其他模块Spring MVC,Lombok,Thymeleaf等

    <dependencies>
            <!--JDBC-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <!--MySQL-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    View Code

    3.添加数据库(略)

    4.编写配置文件

    (1)添加一个application.yml文件配置数据源信息

    spring:
      datasource:
        username: root
        password: 123456
        #?serverTimezone=UTC解决时区的报错
        url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
        driver-class-name: com.mysql.cj.jdbc.Driver

    5.测试连接是否成功

    • Springboot06DataApplicationTests.java中测试数据库信息

     1 import org.junit.jupiter.api.Test;
     2 import org.springframework.beans.factory.annotation.Autowired;
     3 import org.springframework.boot.test.context.SpringBootTest;
     4 
     5 import javax.sql.DataSource;
     6 import java.sql.Connection;
     7 import java.sql.SQLException;
     8 
     9 @SpringBootTest
    10 class Springboot06DataApplicationTests {
    11 
    12     @Autowired
    13     DataSource dataSource;
    14 
    15     @Test
    16     void contextLoads() throws SQLException {
    17 
    18         //查看默认数据源
    19         System.out.println(dataSource.getClass());
    20         //获得连接
    21         Connection connection =   dataSource.getConnection();
    22         System.out.println(connection);
    23         //关闭连接
    24         connection.close();
    25     }
    26 
    27 }

    6.编写控制器CURD

    • 添加JdbcController.java,并编写CRUD操作
     1 import org.springframework.beans.factory.annotation.Autowired;
     2 import org.springframework.jdbc.core.JdbcTemplate;
     3 import org.springframework.web.bind.annotation.GetMapping;
     4 import org.springframework.web.bind.annotation.PathVariable;
     5 import org.springframework.web.bind.annotation.RestController;
     6 
     7 import java.util.List;
     8 import java.util.Map;
     9 
    10 @RestController
    11 public class JdbcController {
    12 
    13     //JdbcTemplate 是 core 包的核心类,用于简化 JDBC操作,还能避免一些常见的错误,如忘记关闭数据库连接
    14     //Spring Boot 默认提供了数据源,默认提供了 org.springframework.jdbc.core.JdbcTemplate
    15     //JdbcTemplate 中会自己注入数据源,使用起来也不用再自己来关闭数据库连接
    16     @Autowired
    17     JdbcTemplate jdbcTemplate;
    18 
    19     //查询student表中所有数据
    20     //List 中的1个 Map 对应数据库的 1行数据
    21     //Map 中的 key 对应数据库的字段名,value 对应数据库的字段值
    22     @GetMapping("/userList")
    23     public List<Map<String, Object>> userList(){
    24         String sql = "select * from user";
    25         List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
    26         return maps;
    27     }
    28 
    29     //新增一个用户
    30     @GetMapping("/addUser")
    31     public String addUser(){
    32         //插入语句
    33         String sql = "insert into mybatis.user(id, name, pwd) values (4,'小明','123456')";
    34         jdbcTemplate.update(sql);
    35         //查询
    36         return "addUser-ok";
    37     }
    38 
    39     //修改用户信息
    40     @GetMapping("/updateUser/{id}")
    41     public String updateUser(@PathVariable("id") int id){
    42         //插入语句
    43         String sql = "update mybatis.user set name=?,pwd=? where id="+id;
    44         //数据
    45         Object[] objects = new Object[2];
    46         objects[0] = "小明2";
    47         objects[1] = "zxcvbn";
    48         jdbcTemplate.update(sql,objects);
    49         //查询
    50         return "updateUser-ok";
    51     }
    52 
    53     //删除用户
    54     @GetMapping("/delUser/{id}")
    55     public String delUser(@PathVariable("id") int id){
    56         //插入语句
    57         String sql = "delete from user where id=?";
    58         jdbcTemplate.update(sql,id);
    59         //查询
    60         return "delUser-ok";
    61     }
    62 
    63 }

    7.测试

    测试成功

  • 相关阅读:
    解决浏览器跨域限制方案之WebSocket
    解决浏览器跨域限制方案之CORS
    解决浏览器跨域限制方案之JSONP
    浏览器跨域限制概述
    tomcat cluster配置实战注意事项
    学习go语言编程系列之定义变量
    修改xshell的默认字间距和行间距
    学习go语言编程系列之helloworld
    hive操作语句使用详解
    Hive通过查询语句向表中插入数据注意事项
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12405134.html
Copyright © 2011-2022 走看看