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";  
    }  
  
}
相关推荐
倔强的石头_3 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB5 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
Flittly7 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了7 小时前
Java 生成二维码解决方案
java·后端
人活一口气11 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP13 小时前
Vibe Coding -- 完整项目案例实操
java
荣码13 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing13 小时前
Google第三方授权登录
java·后端·程序员
明月光81813 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑1 天前
Mybatis实现批量插入
java·后端·mybatis