JDBC开发之四大核心API:DriverManager Connection Statement ResultSet

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: JDBC开发之四大核心API:DriverManager Connection Statement ResultSet

DriverManager

方法都是静态的

注册驱动

在Mysql5之后我们就不用注册驱动了

在jar包里已经写好了

读取文件

第二个方法

如果连接的是主机mysql并且端口是默认的3306

则可以简化书写

代码书写

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
 
 
public class Main {
 
    //JDBC的快速入门
    public static void main(String[] args) throws Exception {
        //注册驱动
//        Class.forName("com.mysql.cj.jdbc.Driver");
 
        //获取连接
        String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, username, password);
 
        //定义SQL语句
        String sql = "update tbl_user set age = 21 where id=1";
 
        //获取执行SQL的对象
        Statement stmt = conn.createStatement();
 
        //执行SQL
        int count1 = stmt.executeUpdate(sql);
 
        //处理结果
        System.out.println(count1);
 
        //释放资源
        stmt.close();
        conn.close();
    }
 
}

Connection

数据库连接对象

非常重要的功能

事物管理

sql语句设置被事物管理

要不同时成功 要不同时失败

这样用异常包围

在加上修饰的代码

try {
    //开启事物
    conn.setAutoCommit(false);
 
    //执行SQL
    int count1 = stmt.executeUpdate(sql1);
    int count2 = stmt.executeUpdate(sql2);
 
    //处理结果
    System.out.println(count1);
    System.out.println(count2);
 
    //提交事务
    conn.commit();
} catch (Exception e) {
 
    //回滚事务
    conn.rollback();
 
    e.printStackTrace();
}

整体代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
 
 
public class Main {
 
    //JDBC的快速入门
    public static void main(String[] args) throws Exception {
        //注册驱动
//        Class.forName("com.mysql.cj.jdbc.Driver");
 
        //获取连接
        String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, username, password);
 
        //定义SQL语句
        String sql1 = "update tbl_user set age = 21 where id=1";
        String sql2 = "update tbl_user set age = 21 where id=2";
 
        //获取执行SQL的对象
        Statement stmt = conn.createStatement();
 
        try {
            //开启事物
            conn.setAutoCommit(false);
 
            //执行SQL
            int count1 = stmt.executeUpdate(sql1);
            int count2 = stmt.executeUpdate(sql2);
 
            //处理结果
            System.out.println(count1);
            System.out.println(count2);
 
            //提交事务
            conn.commit();
        } catch (Exception e) {
 
            //回滚事务
            conn.rollback();
 
            e.printStackTrace();
        }
 
        //释放资源
        stmt.close();
        conn.close();
    }
 
}

Statement

执行SQL语句

处理结果

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
 
 
public class Main {
 
    //JDBC的快速入门
    public static void main(String[] args) throws Exception {
        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
 
        //获取连接
        String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, username, password);
 
        //定义SQL语句
        String sql = "update tbl_user set age = 21 where id=1";
 
        //获取执行SQL的对象
        Statement stmt = conn.createStatement();
 
        //执行SQL
        int count = stmt.executeUpdate(sql);//执行完DML语句 受影响的行数
 
        //处理结果
        System.out.println(count>0?"修改成功":"修改失败");
 
        //释放资源
        stmt.close();
        conn.close();
    }
 
}

创建新的数据库

删除数据库

ResultSet

查询相关的API

将来我们的查询代码使用频率最高

查询相关的API

将来我们的查询代码使用频率最高

书写代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
 
public class Main {
 
    //JDBC的快速入门
    public static void main(String[] args) throws Exception {
        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
 
        //获取连接
        String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, username, password);
 
        //定义SQL语句
        String sql = "select * from tbl_user";
 
        //获取statement对象
        Statement stmt=conn.createStatement();
 
        //执行SQL
        ResultSet rs=stmt.executeQuery(sql);
 
        //遍历集合
        while(rs.next()){
            //获取数据
            int id=rs.getInt(1);
            String name=rs.getString(2);
            String age=rs.getString(3);
            String gender=rs.getString(4);
            System.out.println(id+" "+name+" "+age+" "+gender);
        }
 
        //释放资源
        rs.close();
        conn.close();
    }
 
}

方法重载

参数改为列的名称也行

案例

数据对象是用java对象封装的

创建实体类

成员属性和数据库里面的字段名一一对应

封装数据到实体类里面去

然后放入集合容器

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
JavaScript API 开发者
GraphQL API开发入门:比RESTful更高效的数据查询方式
**GraphQL API开发入门摘要** GraphQL是一种更高效的数据查询方式,解决RESTful API的过度或不足获取数据问题。它允许客户端按需获取数据,减少网络传输,支持一次请求获取多资源。强类型和自描述特性方便了开发。文章通过一个简单的Node.js示例,展示如何使用`apollo-server-express`搭建GraphQL服务器,包括定义Schema、实现Resolver和创建服务器。通过测试,显示了GraphQL如何提供精确数据和优化查询效率。对于复杂数据需求,GraphQL是现代API设计的有效选择。
17 0
|
2天前
|
开发框架 Java API
Java中的REST API开发详解
Java中的REST API开发详解
|
11天前
|
JSON 前端开发 API
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
|
13天前
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
28 3
|
4天前
|
开发框架 Java API
Java中的REST API开发详解
Java中的REST API开发详解
|
7天前
|
JSON 安全 API
API开发实战:从设计到部署的全流程指南
在数字化转型中,API成为系统集成的关键。本文引导读者逐步实践API开发: 1. 设计阶段确定需求,选择RESTful风格,例如天气查询API(/api/weather/{city}),返回JSON数据。 2. 使用Python和Flask实现API,处理GET请求,返回城市天气信息。 3. 进行测试,如用curl请求`http://localhost:5000/api/weather/Beijing`。 4. 文档化API,借助Flask-RESTPlus自动生成文档。 5. 部署到Heroku,创建`Procfile`,通过`heroku`命令推送代码。 【6月更文挑战第28天】
29 0
|
11天前
|
Java 数据库连接 数据库
JDBC之Statement与PreparedStatement操作数据库对比
JDBC之Statement与PreparedStatement操作数据库对比
12 0
|
12天前
|
缓存 JSON Java
使用Java进行RESTful API开发的最佳实践
使用Java进行RESTful API开发的最佳实践
|
13天前
|
SQL 前端开发 Java
2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改
2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改
9 0
|
2月前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之在使用JDBC连接MySQL数据库时遇到报错,识别不到jdbc了,怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。