JDBC快速入门

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: JDBC快速入门

🍎道阻且长,行则将至。🍓


目录

一、JDBC入门

1.概述

(1)JDBC本质

(2)JDBC好处

2.快速入门

(1)步骤

(2)实践

(3)两个小问题


一、JDBC入门

1.概述

JDBC就是使用Java语言操作关系型数据库的一套API,全称:( Java DataBase Connectivity ) Java 数据库连接。JDBC中定义了所有操作关系型数据库的规则。

(1)JDBC本质

官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

(2)JDBC好处

各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发。可随时替换底层数据库,访问数据库的Java代码基本不变。

以后编写操作数据库的代码只需要面向JDBC(接口),操作哪个关系型数据库就需要导入该数据库的驱动包,如需要操作MySQL数据库,就需要在项目中导入MySQL数据库的驱动包。

2.快速入门

(1)步骤

    1. 编写Java代码
    2. Java代码将SQL发送到MySQL服务端
    3. MySQL服务端接收到SQL语句并执行该SQL语句
    4. 将SQL语句执行的结果返回给Java代码      

    (2)实践

    在编写代码之前我们还需要导入MySQL驱动包,在模块下面新建一个lib文件夹,把mysql包发在这里,开始导入:

    image.png

    image.png

    这时候可以选择有效级别:全局、项目、模块内有效。

    image.png

    开始编写第一个代码:

    public static void main(String[] args) throws Exception {
            //1. 注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2. 获取连接
            String url = "jdbc:mysql://127.0.0.1:3306/db1";
            String username = "root";
            String passd = "1234";
            Connection conn = DriverManager.getConnection(url, username, passd);
            //3. 定义sql
            String sql = "update account set money = 2000 where id = 1";
            //4. 获取执行sql的对象 Statement
            Statement stmt = conn.createStatement();
            //5. 执行sql
            int count = stmt.executeUpdate(sql);//受影响的行数
            //6. 处理结果
            System.out.println(count);
            //7. 释放资源
            stmt.close();
            conn.close();
        }

    image.gif

    (3)两个小问题

    问题1:警告

    WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

    出现上面的警告是因为高版本MySQL的ssl问题,修改如下设置就不会提升红色警告了:

    String url = "jdbc:mysql://127.0.0.1:3306/db1?useSSL=false";

    问题2:出错Lock wait timeout exceeded,运行连接缓慢

    Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4

    .MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

    出现这个错误是因为之前在处理数据库事务产生了错误、没有执行提交,在数据库里面操作提交事务或者回滚之后,运行就可以通过了。


    b3d3252a655f456692e8665b228206b0.gif

    ☕物有本末,事有终始,知所先后。🍭

    相关实践学习
    基于CentOS快速搭建LAMP环境
    本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
    全面了解阿里云能为你做什么
    阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
    相关文章
    |
    4月前
    |
    SQL Java 关系型数据库
    JDBC快速入门
    JDBC快速入门
    48 0
    |
    9月前
    |
    Java 数据库连接 数据库
    JDBC快速入门(四)
    JDBC快速入门(四)
    |
    7月前
    |
    SQL Java 关系型数据库
    JDBC知识【JDBC快速入门】第二章
    JDBC知识【JDBC快速入门】第二章
    |
    8月前
    |
    SQL Java 关系型数据库
    JDBC快速入门
    JDBC快速入门
    29 0
    |
    9月前
    |
    SQL Java 数据库连接
    JDBC快速入门(五)--PreparedStatement用法
    JDBC快速入门(五)--PreparedStatement用法
    |
    9月前
    |
    Java 数据库连接 数据库
    JDBC快速入门(三) 代码再优化
    JDBC快速入门(三) 代码再优化
    |
    9月前
    |
    SQL Java 关系型数据库
    JDBC快速入门(二) JDBC各个类详解以及代码规范
    JDBC快速入门(二) JDBC各个类详解以及代码规范
    |
    9月前
    |
    SQL Java 数据库连接
    JDBC快速入门(一)
    JDBC快速入门(一)
    |
    12月前
    |
    Java 数据库连接 数据库
    |
    12月前
    |
    SQL 存储 druid