MySQL数据库JDBC编程(一)环境配置,JDBC使用简介

【JDBC】Java编程语言操作数据库的技术(超详细,适合新手观看学习) Java中提供了一个技术:JDBC(Java database connection),JDBC代码都位于Java的java.jar包下,是Java专门用来提供的操作各种各样的数据库的工具。Java.jar包下提供的JDBC技术大部分都是接口interface,接口只是告诉了我们如果你要连接数据库,你应该怎么做,每一个方法代表什么含义,每一个接口基本上都没有实现类。每个接口的实现类,每种数据库的具体如何使用JDBC连接,每一步方法如何操作,Java需要让数据库的服务厂商给我们提供。 阅读详情

前言❤️❤️

hello hello💕,这里是洋不写bug~😄,欢迎大家点赞👍👍,关注😍😍,收藏🌹🌹
接下来进入mysql入门的最后一个部分,数据库JDBC编程,这篇博客的知识点比较细,从驱动准备到关闭连接,大部分都是大家之前没有接触过的概念,铁汁们暂时看不懂的概念直接跳过就行,最后从头到尾练习下代码,基本上就能掌握了🐵
请添加图片描述
🎇个人主页:洋不写bug的博客
🎇所属专栏:数据库
🎇mysql8.0和navicate的安装:mysql安装教程
🎇铁汁们对于MySQL数据库的各种常用核心语法,都可以在上面的数据库专栏学习,专栏正在持续更新中🐵🐵,有问题可以写在评论区或者私信我哦~

1,简介

JDBC就是Java Data Base Connectivity(Java数据库连接)首字母的简写
JDBC包含了一套Java定义的用于执行SQL语句的接口(只定义方法,没有具体的实现),使开发者能够编写数据库程序,是Java程序和数据库之间的桥梁

JDBC的主要作用:与数据库建立连接,发送SQL语句和处理数据库执行结果


直接看概念可能会觉得比较抽象,下面就看下过程:

Java程序去操作数据库的话,不同的数据库有不同的协议(比如说连接方式不同,组织数据的方式不同)
那能不能定义一个通用规范,让Java程序来对不同数据库的操作代码都相同
比如 “获取连接” 就都使用getConnection(),“执行查询” 都使用executeQuery(),这样程序员在Java中操作数据库就会很方便

“JDBC” 本身是 Java 定义的通用规范(接口),JDBC内部的驱动是由各个数据库厂商来开发的,因为他们对数据库的协议也比较了解

在这里插入图片描述


JDBC的使用过程就可以概括为:

  1. 加载数据库厂商的驱动包
  2. 建立连接
  3. 创建Statement
  4. 执行SQL
  5. 处理结果释放资源,关闭连接

    2,下载JDBC驱动

    我们这里使用的是MySQL数据库,既然不同的数据库的JDBC驱动程序不同,那在Java中写代码前就要先搞下驱动

    首先在IDEA中创建项目,选择Maven构建系统,可能在JavaSE学习的时候使用的都是Intellij构建系统,但是实际开发中更多都是使用Maven

    在这里插入图片描述



    Maven定义了工程在构建过程中的一些约定,让测试,打包,访问静态资源变得统一
    例如这里src目录里分为了test目录和main目录,main目录中是Java项目开发时的源代码和静态资源文件,test目录中是用于测试的代码,生成jar包时并不会包含test目录中的内容

    下面有个pom.xml,就是项目中关于Maven的配置文件

    在这里插入图片描述



    创建Maven还有个好处,那就是Maven 中央仓库中包含了绝大多数主流数据库的 JDBC 驱动,我们可以直接在pom.xml(配置文件)中通过依赖配置引入,无需手动下载和管理

    刚刚提到说不同数据库的JDBC驱动是不同的,如果不用Maven,就要从数据库官网中找,比较麻烦,而Maven中央仓库就类似于手机上的应用市场,可以快速的配置JDBC驱动

    打开Maven依赖检索平台(在Maven中,依赖除了 JDBC 驱动,还包括其他工具库、框架),链接已经放在下面了
    Maven依赖检索平台

    输入Mysql搜索,会发现有两个JDBC驱动,第一个后面带有J,就是当前最新版本;
    第二个就是相对比较老的版本

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述




    使用比较经典的8.0.33版本,第一个和第二个里面都收录了,在第一个和第二个里面找都可以,点击8.0.33,点击后就进入了这样的一个界面,复制下面框里的内容(在下图中已圈出)

    在这里插入图片描述



    接着回到IDEA中,打开pom.xml配置文件,在properties标签后写上一个dependencies标签,接着把东西复制到这个标签中,

    在这里插入图片描述



    这时候点击一下右上角的这个按钮,Maven 就会从中央仓库下载对应的 JDBC 驱动 JAR 包,并将其引入到项目中,让你的 Java 程序能够使用该驱动来操作数据库,点击完下载后就会发现这里也不爆红了

    在这里插入图片描述
    在这里插入图片描述




    Maven仓库的地址在国外,因此可能有少部分铁汁下载依赖的时候会特别慢,甚至卡住,这时候就可以把仓库镜像配置成国内的(如果能成功下载依赖的铁汁们就不需要改镜像了)

    右键IDEA程序,点击打开文件所在位置

    在这里插入图片描述


    进入文件位置后,找到刚进入IDEA这一层(点击上一层即可到达)

    在这里插入图片描述

    打开plugins目录,根据这个路径来找到配置文件settings.xml,先拷贝一份,防止一会改错

    在这里插入图片描述

    接着用记事本打开这个配置文件,找到mirrors这部分,这里面就是默认仓库镜像配置,把这部分用阿里的镜像来替代

    在这里插入图片描述

    把mirrors整部分都用下面这个来替代,这时候改成了阿里云的镜像配置,以后下载依赖走的就是阿里云的路径,速度就会比较快

    <mirrors>
        <mirror>
            <id>aliyunmaven</id>
            <mirrorOf>*</mirrorOf>
            <name>阿里云公共仓库</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </mirror>
        <mirror>
            <id>central</id>
            <mirrorOf>*</mirrorOf>
            <name>aliyun central</name>
            <url>https://maven.aliyun.com/repository/central</url>
        </mirror>
        <mirror>
            <id>spring</id>
            <mirrorOf>*</mirrorOf>
            <name>aliyun spring</name>
            <url>https://maven.aliyun.com/repository/spring</url>
        </mirror>
    </mirrors>
    

    3,表的准备

    这里博主在first_database的数据库里创建一个student表,在里面加入数据

    CREATE TABLE student (
        id BIGINT PRIMARY KEY AUTO_INCREMENT, 
        name VARCHAR(50) NOT NULL,        
        age INT,                             
        gender VARCHAR(10)                     
    );
    
    INSERT INTO student(name,age,gender) VALUES("marrie",18,"女"),("mark",20,"男"),("helena",19,"女");
    

    在这里插入图片描述

    4,JDBC的使用

    JDBC的使用过程就可以概括为:

    1. 加载数据库厂商的驱动包
    2. 建立连接
    3. 创建Statement
    4. 执行SQL
    5. 处理结果集
    6. 处理结果释放资源,关闭连接

      1,驱动加载

      在Java目录下创建个Demo01_DriverManager类,在里面写代码

      在这里插入图片描述

      在main方法中写上Class.forName(),加载mysql驱动,然后alt + enter键捕获一下异常,这段代码的作用就是加载数据库厂商提供的驱动,让MySQL的jar包和Java环境建立联系
      代码就是下面这样:

      try {
                  Class.forName("com.mysql.cj.jdbc.Driver");
              } catch (ClassNotFoundException e) {
                  throw new RuntimeException(e);
              }
      

      Class.forName就是加载指定的类,这里加载Driver类,经过一系列里面方法的调用执行,就加载并注册 MySQL JDBC 驱动



      点击ctrl键点击一下这个Driver,就进入到了数据库实现的Driver类中,可以看下这个类的位置,在jdbc包下,如下所示:

      在这里插入图片描述

      这个类就是由MySQL数据厂商实现的JDBC驱动类,实现了JDBC的Driver接口,前面提到过,不同的数据库协议不同,但是数据库厂商都会基于这些接口规范来实现类,确保无论什么数据库程序员写的操作代码都是一样的
      里面的代码就是完成驱动的注册,驱动只有在注册后才能使用

      在这里插入图片描述

      2,建立数据库连接

      在前一段代码的基础上加上这段代码,这个url直接复制下,然后改下端口号和要访问的数据库的名称就可以了,具体的信息博主标在下面的图上了,大家可以看下
      这里回环地址大家直接复制就可以,就是代表连接本机,博主因为之前装过MySQL5.7版本,所以端口号是3308,大家第一次安装mysql端口号应该是3306,实在不确定的话可以写SQL语句查下(如下所示)

      在这里插入图片描述

      在这里插入图片描述



      这里面除了url,还有两个参数,一个是user,一个是passward,就是用户和密码
      这里user这里写root,就是数据库的默认超级管理员用户名,后面写下密码(这里博主的密码是123456,这个密码就是打开mysql命令行工具刚开始要输入的那个密码),在alt enter 一下语句捕获个异常
      接着创建个connection变量,把连接赋给变量,建立数据库的连接这部分就完成了,代码如下

      try {
      //            1,加载数据库厂商提供的驱动,让MySQL的jar包和Java环境建立联系
                  Class.forName("com.mysql.cj.jdbc.Driver");
      //            2,建立数据库连接
                   Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3308/first_database?characterEncoding=utf8" + 
                                "&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false", "root", "123456");
              } catch (ClassNotFoundException e) {
                  throw new RuntimeException(e);
              } catch (SQLException e) {
                  throw new RuntimeException(e);
              }
      

      这里大家把url复制下来,改一下端口号(大部分铁汁的端口号还是3306),改下数据库名字(把这里的first_database改成你的数据库的名字)

      3,创建Statement和执行sql

      这段代码也是在try这个代码块里面写的,首先创建一个 Statement 类型的变量statement,接着写个字符串,里面是查询的SQL语句,查询就调用executeQuery方法,修改数据就调用executeUpdate方法

      这里是查询语句,就用statement调用executeQuery方法,发送 SQL 语句到数据库、执行并返回结果,通过resultSet变量来接收(ResultSet是一个接口,resultset实现类对象的引用),代码如下所示:

       try {
      //            1,加载数据库厂商提供的驱动,让MySQL的jar包和Java环境建立联系
                  Class.forName("com.mysql.cj.jdbc.Driver");
      //            2,建立数据库连接
                Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3308/first_database?characterEncoding=utf8" +
                          "&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false", "root", "123456");
      
                  //3,创建Statement和执行sql
                  Statement statement = connection.createStatement();
                  String sql = "select id,name,age,gender from student";   //定义SQL语句
                  ResultSet resultSet = statement.executeQuery(sql);   //执行SQL
              }
      




      (按住ctrl键点击Statement,会发现它是一个接口),这个变量存储了一个 Statement 接口实现类的对象的引用;变量 statement只是这个对象的引用(这部分可能有点抽象,铁汁们大概看下就行)

      在这里插入图片描述

      4,处理结果集

      result.next()返回的是一个boolean值,true表示有下一条记录,这里就使用while循环来打印数据,用resultset的方法来获取这些数据,不同的数据类型对应着不同的方法,里面传入的列的索引,根据列在表中的位置来写,如下所示:

      在这里插入图片描述




      最后就是打印,使用Messageformat类的format方法,按照指定的格式拼接变量值,里面的 {0}、{1}、{2}、{3} 是占位符(数字表示位置索引,从 0 开始),后面的 id、name、age、gender 是要替换这些占位符的实际变量值。(这样写的话会比直接用字符串拼接简单很多,特别是表中的数据有很多列的时候)

      while (resultSet.next()){
                 long id = resultSet.getLong(1);
                 String name = resultSet.getString(2);
                 int age = resultSet.getInt(3);
                 String gender = resultSet.getString(4);
                 System.out.println(MessageFormat.format("学号={0},姓名={1},年龄={2},性别={3}",id,name,age,gender));
                  }
      

      5,释放资源,关闭连接

      在对数据库操作完后,一定要释放资源,关闭连接,主要是以下两个原因:

      • 数据库服务器能支持的并发连接数是有限的,如果使用后不关闭连接,这些连接会一直占用数据库资源,最终导致新的连接请求无法建立
      • Connection、Statement、ResultSet等对象都属于非 Java 托管的本地资源,Java无法对他们进行垃圾回收,长期积累会导致内存溢出,程序崩溃



      • 释放资源要在finally中完成,刚刚创建的顺序是Connection,Statement,ResultSet
        释放资源的时候就要以相反的顺序来释放,这是因为Statement和ResultSet是依赖于Connection的,如果先去关Connection的话,那么Statement和ResultSet失去依赖,就会出现异常





        在finally中写的话,刚刚创建的connection,statement,resultSet这些都是局部变量,没法使用,因此就要把它们改为全局变量,如下图

        在这里插入图片描述

        在finally中,写完close后,按下alt enter键,生成try,catch方法,代码就基本上ok了,代码如下:

        finally {
                    if(resultSet != null){
                        try {
                            resultSet.close();
                        } catch (SQLException e) {
                            throw new RuntimeException(e);
                        }
                    }
        
                    if(statement != null){
                        try {
                            statement.close();
                        } catch (SQLException e) {
                            throw new RuntimeException(e);
                        }
                    }
        
                    if(connection != null){
                        try {
                            connection.close();
                        } catch (SQLException e) {
                            throw new RuntimeException(e);
                        }
                    }
                }
        

        代码全部写完后运行,结果就是这样的:

        在这里插入图片描述

        6,源码

        
        import javax.xml.transform.Result;
        import java.sql.*;
        import java.text.MessageFormat;
        
        public class Demo01_DriverManager {
            public static void main(String[] args) {
                Connection connection = null;
                Statement statement = null;
                ResultSet resultSet = null;
                try {
        //            1,加载数据库厂商提供的驱动,让MySQL的jar包和Java环境建立联系
                    Class.forName("com.mysql.cj.jdbc.Driver");
        //            2,建立数据库连接
                  connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3308/first_database?characterEncoding=utf8" +
                            "&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false", "root", "123456");
        
                    //3,创建Statement和执行sql
                     statement = connection.createStatement();
                    String sql = "select id,name,age,gender from student";   //定义SQL语句
                     resultSet = statement.executeQuery(sql);   //执行SQL
        
                    //4,遍历结果集,获取数据行,resultSet.next()返回一个boolean值,true表示有下一条记录
                    while (resultSet.next()){
                        long id = resultSet.getLong(1);
                        String name = resultSet.getString(2);
                        int age = resultSet.getInt(3);
                        String gender = resultSet.getString(4);
        
                        System.out.println(MessageFormat.format("学号={0},姓名={1},年龄={2},性别={3}",id,name,age,gender));
                    }
                } catch (ClassNotFoundException e) {
                    throw new RuntimeException(e);
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }finally {
                    if(resultSet != null){
                        try {
                            resultSet.close();
                        } catch (SQLException e) {
                            throw new RuntimeException(e);
                        }
                    }
        
                    if(statement != null){
                        try {
                            statement.close();
                        } catch (SQLException e) {
                            throw new RuntimeException(e);
                        }
                    }
        
                    if(connection != null){
                        try {
                            connection.close();
                        } catch (SQLException e) {
                            throw new RuntimeException(e);
                        }
                    }
                }
        
        
        
            }
        }
        

        5,扩展使用

        如果要根据学生的名字来查询这行的数据,每次都重新写sql字符串比较麻烦
        能不能直接在IDEA控制台上输入学生的名字,然后在数据库中进行查询,将查询到的数据在控制台中打印出来

        只需要在刚才的代码上进行微调即可,主要的修改都在创建Statement和执行sql部分

         //3,创建Statement和执行sql
                     statement = connection.createStatement();
                    System.out.println("请输入您要查询的名字-->");
                    Scanner scanner = new Scanner(System.in);
                    String inputName = scanner.next();
                    String sql = "select id,name,age,gender from student where name = '" + inputName + "'";   //定义SQL语句
                     resultSet = statement.executeQuery(sql);   //执行SQL
        
         String sql = "select id,name,age,gender 
         from student where name = '" + inputName + "'";   //定义SQL语句
        



        这里要注意的是如何把inputName加到sql语句中去,直接查询,应该是这样的,名字加个单引号,因此这里也要拼接出一个单引号

        在这里插入图片描述

        一般也习惯在这里也改为把while改为if,表示一次只查询一条数据

        在这里插入图片描述

        6,SQL注入

        那铁汁们看下,如果在IDEA控制台上这样输入,强行把后面那个单引号给注释掉,加上个or语句

        在这里插入图片描述

        这个的sql语句就相当于是这样,在navicat中运行下,会直接把所有数据都查出来,并不会报错

        在这里插入图片描述


        但是在IDEA中运行下,就直接报错了,这是为什么呢?

        在这里插入图片描述

        这是因为官方的依赖中做了对–这些特殊字符的过滤,另外检测到使用or语句也会阻止访问
        特殊字符用特殊语句构造一个合法的SQL语句,得到结果,就是SQL注入,官方依赖中队特殊字符的过滤就是为了抵制SQL注入,可以有效的防止数据库遭到恶意入侵



        在互联网早期,数据库厂商的官方依赖并没有内置针对 SQL 注入的特殊字符过滤机制,开发者也不注重防御,
        如果攻击者在登录页面进行SQL注入,if虽然只查询第一条数据,但是第一条数据一般是管理员的账号和密码信息,而且很多都是明文,没有加密,这时候攻击者就能用管理员身份来登入网站,对网站进行破坏,这也就是SQL注入攻击

        那么MySQL数据库厂商依赖中的特殊字符过滤就是万能的吗?

      • 既然SQL会过滤 -- ,#也可以注释,那试下#
      • 既然or的使用会被检测到,那把or分隔开呢


      • 代码就像下面这样:

        在这里插入图片描述

        接着在IDEA中试一下,会发现这样确实绕过了对特殊字符的检测,可以访问到第一条数据

        在这里插入图片描述


        那如何更强的防御sql注入呢,这就是下篇数据库博客要聊的内容了🐵

        注意:SQL 注入属于非法侵入计算机信息系统、窃取数据或破坏系统的行为,在全球主要国家和地区的法律中都是明确禁止的,因此建议铁汁们也不要去随意尝试😅🐵

        结语💕💕

        这部分知识还是很杂,很多的,初学铁汁们最重要的是把源码练习几遍,先把代码写熟了,后面再慢慢理解
        以上就是今天的所有内容啦~完结撒花~🥳🎉🎉
        在这里插入图片描述

      使用JDBC连接MySQL数据库 目录 1.MySQL驱动配置和使用 2.通过JDBC连接数据库 3.解决JDBC连接数据库时存在的SQL注入问题 4.使用封装工具类实现JDBC连接数据库 使用JDBC连接数据库 1.MySQL驱动配置和使用 下载驱动 JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。 主要用于执行 SQL 查询,并查看查询的记录。 使用 JDBC 需要先下载驱动。mysql8需要设置时区,有cj目录,mysq... 阅读详情

      相关推荐

      【3D目标检测】MMdetection3d——搭建IS-Fusion环境+nuScenes数据集训练

      搭建IS-Fusion环境+nuScenes数据集训练

      qq_44703886的博客 2323

      JDBC编程(数据库编程)

      一.驱动加载和核心原理 二.PreparedStatement 三.ResultSet 四.事务处理 五.程序分层开发

      ZangLing的博客 1627

      CTF-MISC:BUUCTF练习汇总(1-25题,不包括签到题)

      解题思路:该题比较基础,wireshark打开过滤HTTP流量包,追踪HTTP流后可以看到base64密文,解密后得到jpg图片,打开图片即可看到flag,在线OCR识别即可提取出flag值。解题思路:zip压缩包解压需要密码,图片中的盲文为解压的密码,解压后得到MP3音频文件,内容为典型的摩斯密码;解题思路:由题目可以为LSB隐写,使用StegSolve打开图片查看最低有效位得到PNG信息,另存为图片后发现是二维码,扫描后即可得到flag。对应摩斯电码为:-.-. - …-. .-- .–. . …

      燕麦葡萄干的博客 1万+

      JDBC 编程

      JDBC 编程的基本流程

      lfm1010123的博客 1638

      告别手动维护!教你用SAP BAPI批量更新生产订单BOM组件(CO02工单)

      本文详细介绍了如何利用SAP BAPI实现生产订单BOM组件的批量更新,解决传统手工操作(如CO02工单)效率低下的问题。通过核心函数解析和批量处理框架设计,帮助用户大幅提升工作效率,降低错误率,适用于物料主数据变更、季节性配方调整等场景。

      weixin_30844577的博客 561

      基于Python实现的捕鱼达人小游戏源代码+使用说明

      摘要: 本文介绍了一款自制的捕鱼达人小游戏,使用Python3和Pygame模块开发。游戏包含完整的资源文件(图片、音效、字体)和源码结构(11个功能模块),实现了大炮移动射击、特殊子弹、炸弹、难度递增等核心玩法。安装需配置Python环境和Pygame模块,运行main.py即可启动游戏。游戏支持键盘控制(方向键移动、空格射击、1键放炸弹),默认时长600秒,包含开始菜单、游戏界面和结束界面。所有代码均有详细注释,项目已开源并提供下载链接。(150字)

      2301_76484015的博客 667

      MySQL的JDBC编程详解

      在实际项目中,我们对于数据库的操作大部分是通过代码来完成的,各种数据库在开发的时候,都会提供一组编程接口API。所以不同公司使用不同的数据库软件,那么程序员学习成本是非常大的,因为要学习不同数据库对应的编程风格和相关语法。所以在java层面就进行了统一,这就是JDBC。各大数据库厂商在自身原生的API接口的基础上进行封装,形成数据库驱动包,在由各个数据库的数据库驱动包集合形成JDBC。JDBC,即Java Database Connectivity,java数据库连接。

      baixian110的博客 1411

      瑞芯微rv1126 rtsp+mpp+rga取流

      瑞芯微rv1109 rtsp+mpp+rga取流

      ZuoSeDiao的博客 6339

      JDBC编程

      JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法。制作到数据库的连接。创建 SQL 或 MySQL 语句。执行 SQL 或 MySQL 查询数据库。查看和修改所产生的记录。Java 应用程序所有这些不同的可执行文件就可以使用 JDBC 驱动程序来访问数据库,这样可以方便的访问数据。

      weixin_62466605的博客 2508

      R语言实战:Scheirer–Ray–Hare检验在非正态重复测量数据分析中的应用

      本文详细介绍了当重复测量数据不满足正态分布假设时,如何利用R语言中的Scheirer–Ray–Hare检验进行数据分析。该检验作为非参数方法,无需数据服从正态分布或方差齐性,适用于分析组间差异、时间效应及其交互作用。文章通过实战案例,从环境搭建、数据准备、检验执行到结果解读与可视化,提供了完整的操作指南,帮助研究者有效处理心理学、医学等领域的复杂实验数据。

      salt9的博客 780

      用Obsidian搭建个人知识库:AI时代如何构建你的第二大脑

      AI 时代,真正有价值的不只是获取知识,而是沉淀属于自己的知识体系。本文从 Obsidian 安装、目录设计、双向链接、插件推荐到 AI 联动、多端同步,手把手教你打造高效、可持续进化的个人知识库,让知识真正为你所用。🧠

      XiaoqiangClub的博客 468

      Java数据库编程

      应数据库课程作业要求,用Java编写了一个简单的图形界面化数据库查询程序,实际用于数据库编程的时间并不多,大部分时间都在做界面开发了。下面就分享一下开发经历和其中的一些坑。 环境配置 1. 数据库服务器操作系统:      Windows10(把自己的笔记本当做数据库服务器,然后用数据库客户端连接localhost) 2. 数据库服务器:                    MySQL 8...

      da_kao_la的博客 730

      【异常】OpenClaw调用火山引擎大模型提示词 Agent failed before reply: All models failed (6): volcengine/kimi-k2-5-26

      摘要: 本文针对OpenClaw调用火山引擎大模型服务时触发的全量熔断报错(All models failed)提供全链路排查方案。报错核心为服务熔断(cooldown)和模型不可用(model_not_found),主要源于账号权限、API凭证失效或模型标识错误。解决方案按优先级分步实施:1)校验账号状态与AK/SK有效性;2)核对官方模型标识;3)重启服务解除熔断;4)修复配置文件;5)通过原生API测试定位网络或服务端问题。日志分析(openclaw logs)可快速识别HTTP状态码(如401/40

      奶爸的编程之路,也就一周冷个三天 837

      JAVA(JDBC)连接mysql数据库,并进行一些简单操作(超详细)

      一、需要用到的工具: (1)本文使用的编译器是idea,下载链接:https://download.jetbrains.com.cn/idea/ideaIU-2021.1.1.exe 提示:下载的软件刚开始免费试用30天之后需要收费,这里对于如何免费使用此软件,不再赘述,请自行百度。建议使用跟我一样的编译器操作 (2)使用的数据库是mysql数据库,百度网盘链接 https://pan.baidu.com/s/159uDdczQW_LvRtnYwYkuWA 提取码:aa8e (3)还需要mysql驱动: 链

      m0_46261647的博客 1100

      精雕软件(JDpaint) 5.5 绿色版

      精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

      visio安装包

      Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

      MySQL数据库---JDBC编程

      1. 创建数据库连接Connection2. 创建操作命令Statement3. 使用操作命令来执行SQL4. 处理结果集ResultSet5. 释放资源5. JDBC常用接口和类如果您觉得有失偏颇请您在评论区指正,如果您觉得不错的话留个好评再走吧!!您的鼓励就是对我最大的支持!!!t=N7T8安装JDBC的链接https://mvnrepository.com/search?q=MySQL。

      2301_80062351的博客 1390

      WINCC7.3破解文件

      WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

      JDBC程序访问数据库

      2.DriverManager获取Connection连接。1.Class.forName()加载驱动。3.创建Statement执行SQL语句。4.返回ResultSet查询结果。

      m0_74162514的博客 299

      最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

      Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

      【MySQL 数据库】JDBC 编程之 Java 连接 MySQL

      文章目录1. 数据库编程的基础条件2. Java 的数据库编程:JDBC3. JDBC 访问数据库的层次结构4. MySQL 数据库操作介绍5. MySQL 驱动包的下载及添加到项目6. JDBC 使用步骤6.1 创建数据库源,连接 Connection6.2 构造 SQL 语句,为执行的操作做准备6.3 执行 SQL,并处理结果集6.4 释放资源6.5 JDBC 编程模板7. JDBC 常用接口和类7.1 DataSource 和 MysqlDataSource7.2 Connection7.3 Prep

      吞吞吐吐大魔王的博客 5268

      MySQL数据库 --- Java的JDBC编程

      文章目录Java的JDBC编程1. 数据库编程的必备条件2. MySQL驱动包的安装3. idea 中 驱动包的部署4. Java的数据库编程: JDBC5. JDBC API6. JDBC常用接口和类6.1 数据库连接Connection6.2 Statement对象6.3 ResultSet对象7. JDBC使用的注意事项8. JDBC使用的具体操作8.1 插入对应的JDBC的使用8.2 删除对应的JDBC的使用8.3 修改对应的JDBC的使用8.4 查找对应的JDBC的使用 Java的JDBC编程 1

      wwzzzzzzzzzzzzz的博客 9583

      【MySQL系列】Java的JDBC编程

      MySQL数据库 JDBC编程部分的内容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      哎呀是小张啊 的博客 2030

      [MySQL]初始JDBC编程

      JDBC即Java DataBase Connectivity , Java数据库连接 , 是一种用于执行SQL语句的Java API. 它是Java中数据库的连接规范.

      Node_Hao的博客 4052

      基于JDBC的MySQL数据库编程

      基于JDBC的数据库编程, JDBC使用方法和步骤, 注意事项.

      trong_ 的烂笔头 2787

      初始MYSQL数据库(8)—— JDBC编程

      JDBC的概念、JDBC的使用、SQL注入、优化后的JDBC、JDBC编程的两种方式对比

      我要学编程的博客 1701

      【MySQL】Java的JDBC编程

      Java的JDBC编程 1. 数据库编程的必备条件 2. Java的数据库编程:JDBC 3. JDBC工作原理 4. JDBC使用 配置 最基本的一个JDBC程序编写流程 JDBC查询 4.1 JDBC开发案例 4.2 JDBC使用步骤总结 5. JDBC常用接口和类 5.1 JDBC API 5.2 数据库连接Connection 5.3 Statement对象 5.4 ResultSet对象 6. 应用案例 7. 内容重点总结 面试问答: 8. 课后作业

      2402_85428625的博客 2123

      Mysql数据库--JDBC编程

      1.JDBC编程基础 2.驱动程序下载 3.新建项目 3.1导入java包 3.2转换为库 4.开始创作 4.1准备数据库 4.2创建DataSource 4.3和数据库建立连接 4.4构造sql,准备发送到服务器 4.5发送sql,执行sql 4.6释放系统资源 4.7自行输入的设置 4.8插入数据完整源代码 4.9查询数据库里面的表的操作 4.10查询操作的源代码

      大学成长道路上的探索经历与点滴思考,与君共勉,共筑成长。 2025

      MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)

      目录 JDBC的环境配置 JDBC的使用步骤(Java操作数据库) 建立数据库连接 方式一:DriverManager 方式二:DataSource(数据源/数据库连接池) DataSource与DriverManager的对比 创建操作命令对象Statement Statement PreparedStatement CallableStatement 执行SQL语句 处理结果集 释放资源 JDBC实现查询操作完整代码 什么是JDBC? JDBC即Jav...

      qq_58284486的博客 3237

      MySQL JDBC编程

      本章目标 掌握JDBC的概念和工作原理 学会如何使用java中的JDBC编程 数据库编程必备条件 编程语言,如Java,C、C++、Python等 数据库,如Oracle,MySQL,SQL Server等 数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。 可以看到我们

      bug郭的博客 1289
      上一篇: MySQL事务详解:ACID特性
      下一篇: MySQL数据库JDBC编程(二):DataSource与预处理对象详解
      洋不写bug
      博客等级 码龄2年 87粉丝 102原创
      评论
      成就一亿技术人!
      拼手气红包6.0元
      还能输入1000个字符
       
       条评论被折叠 查看
      添加红包

      请填写红包祝福语或标题

      个

      红包个数最小为10个

      元

      红包金额最低5元

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

      抵扣说明:

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

      余额充值