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

简介: 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对象封装的

创建实体类

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

封装数据到实体类里面去

然后放入集合容器

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
SQL Java 数据库连接
【YashanDB知识库】statement级别的触发器在jdbc接口调用executeBatch时被多次触发
statement级别的触发器在jdbc接口调用executeBatch时被多次触发
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
445 1
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
439 3
|
SQL Java 数据库连接
|
Java 数据库连接 数据库
JDBC之Statement与PreparedStatement操作数据库对比
JDBC之Statement与PreparedStatement操作数据库对比
255 0
|
SQL 前端开发 Java
2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改
2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改
233 0
|
12月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。
|
12月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
12月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。