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";  
    }  
  
}
相关推荐
南极企鹅11 分钟前
springBoot项目有几个端口
java·spring boot·后端
清风拂山岗 明月照大江17 分钟前
Redis笔记汇总
java·redis·缓存
承渊政道18 分钟前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
未来之窗软件服务19 分钟前
计算机等级考试—高频英语词汇—东方仙盟练气期
数据库·计算机软考·东方仙盟
lekami_兰23 分钟前
MySQL 长事务:藏在业务里的性能 “隐形杀手”
数据库·mysql·go·长事务
xiaoxue..32 分钟前
合并两个升序链表 与 合并k个升序链表
java·javascript·数据结构·链表·面试
JQLvopkk43 分钟前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
忧郁的Mr.Li1 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端
yq1982043011561 小时前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
一个public的class1 小时前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript