JDBC学习

配置文件

application.yml

yaml 复制代码
spring:  
  datasource:  
    username: root  
    password: 123456  
    url: jdbc:mysql://localhost:3306/rbac?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC  
    driver-class-name: com.mysql.jdbc.Driver

rbac为我自己本地的数据库,可以进行替换,后面的characterEncoding是更改编码方式为utf-8,serverTimezone为设置时区

其中数据库可以提前导入到IDEA的数据库配置连接中。

测试连接

在test里面进行测试链接是否成功

java 复制代码
package com.learn.jdbc_demo;  
  
import org.junit.jupiter.api.Test;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.boot.test.context.SpringBootTest;  
  
import javax.sql.DataSource;  
import java.sql.Connection;  
import java.sql.SQLException;  
  
@SpringBootTest  
class JdbcDemoApplicationTests {  
  
  
    @Autowired  
    DataSource dataSource;  
  
    @Test  
    void contextLoads() {  
       //查看默认的数据源:class com.zaxxer.hikari.HikariDataSource  
       System.out.println(dataSource.getClass());  
  
       //获得数据库连接  
        try {  
            Connection connection = dataSource.getConnection();  
          //链接配置:HikariProxyConnection@2084912180 wrapping com.mysql.cj.jdbc.ConnectionImpl@17ff8810  
          System.out.println(connection);  
          connection.close();  
        } catch (SQLException e) {  
            throw new RuntimeException(e);  
        }  
  
    }  
  
}

测试返回数据

在web中测试是否可以返回到前端

java 复制代码
package com.learn.jdbc_demo.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.RestController;  
  
import java.util.List;  
import java.util.Map;  
  
  
  
@RestController  
public class JDBCController {  
  
    @Autowired  
    JdbcTemplate jdbcTemplate;  
  
    //查询数据库的所有信息  
    //没有实体类,数据库的东西,怎么获取? Map  
    @GetMapping("/userList")  
    public List<Map<String,Object>> userList(){  
        String sql = "select * from my_dept";  
        List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql);  
        return maps;  
    }  
}

简单实现增删改查

java 复制代码
package com.learn.jdbc_demo.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;  
  
    //查询数据库的所有信息  
    //没有实体类,数据库的东西,怎么获取? Map  
    @GetMapping("/userList")  
    public List<Map<String,Object>> userList(){  
        String sql = "select * from my_user_job";  
        List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql);  
        return maps;  
    }  
  
    @GetMapping("/addUser")  
    public String addUser(){  
        String sql = "insert into rbac.my_user_job(user_id,job_id) values(1,11)";  
        jdbcTemplate.update(sql);  
        return "updata-ok";  
    }  
  
    @GetMapping("/updateUser/{id}")  
    public String updateUser(@PathVariable("id") int id){  
        String sql = "update rbac.my_user_job set job_id=? where user_id="+id;  
        //封装  
        Object[] objects =new Object[1];  
        objects[0] = "1";  
        jdbcTemplate.update(sql,objects);  
        return "updata-ok";  
    }  
  
    @GetMapping("/deleteUser/{id}")  
    public String deleteUser(@PathVariable("id")int id){  
        String sql = "delete from rbac.my_user_job where user_id=?";  
        jdbcTemplate.update(sql,id);  
        return "delete-ok";  
    }  
  
}
相关推荐
code2cat10 分钟前
Java工具篇之Maven:从pom.xml到测试通过的JAR
xml·java·maven
wuminyu7 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh7 小时前
SpringBoot 配置⽂件
java·spring boot·spring
ss2737 小时前
PostgreSQL常见索引问题与解决方案
数据库·postgresql
小徐不徐说7 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
骑着蜗牛撵大象3278 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕8 小时前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java
瀚高PG实验室9 小时前
发布端逻辑复制槽消失
数据库·postgresql·瀚高数据库
ss2739 小时前
PostgreSQL慢查询定位与优化
数据库·postgresql