JDBC快速入门

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 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

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

    相关实践学习
    每个IT人都想学的“Web应用上云经典架构”实战
    本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
    MySQL数据库入门学习
    本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
    相关文章
    |
    SQL Java 关系型数据库
    【前端学java】JDBC快速入门
    【8月更文挑战第12天】JDBC快速入门
    161 2
    【前端学java】JDBC快速入门
    |
    Java 数据库连接 数据库
    JDBC快速入门(四)
    JDBC快速入门(四)
    169 0
    |
    Java 数据库连接 API
    后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
    后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
    227 3
    |
    Java 关系型数据库 MySQL
    JDBC简介以及快速入门
    JDBC简介以及快速入门
    162 0
    |
    SQL Java 关系型数据库
    JDBC快速入门
    JDBC快速入门
    149 0
    |
    SQL Java 关系型数据库
    JDBC知识【JDBC快速入门】第二章
    JDBC知识【JDBC快速入门】第二章
    |
    SQL Java 关系型数据库
    JDBC快速入门
    JDBC快速入门
    170 0
    |
    SQL Java 数据库连接
    JDBC快速入门(五)--PreparedStatement用法
    JDBC快速入门(五)--PreparedStatement用法
    269 0
    |
    Java 数据库连接 数据库
    JDBC快速入门(三) 代码再优化
    JDBC快速入门(三) 代码再优化
    129 0