【JAVA基础】- JAVA中JDBC详解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【JAVA基础】- JAVA中JDBC详解

【JAVA基础】- JAVA中JDBC详解

好多年没有使用过JDBC直接对数据库进行操作,最近在做基于Windchill开发时,需要使用PTC封装好的JDBC中间件,复习一下JDBC基础知识。

一、JDBC简介

JDBC(JAVA DataBase Connectivity)JAVA连接数据库一个技术规范。具体就是通过JAVA连接广泛的数据库,并执行对数据库的操作。通过JDBC技术与各类型数据库进行交互,使用Java语句发送SQL到数据库总,可以实现更安全进行各类数据库操作。可以更安全、高效的完成对数据库各类操作。

JDBC是一种连接规范并不是实现类。此规范是有Sun公司提供一套完整的接口,各数据库厂商根据自身产品特点实现自己的产品类。具体的实现过程如下图类。

二、JDBC技术相关的接口

编号 接口 功能说明
1 Driver 驱动接口,定义建立链接方式
2 DriverManager 工具类,用于管理驱动,可以获取数据库的链接
3 Connection 表示Java与数据库建立的链接对象(接口)
4 PrepareStatement 发送SQL语句的工具
5 ResultSet 结构集,用于获取查询语句的结果

三、JDBC的编程步骤

JDBC操作数据一般分为以下六步:

1.加载驱动

Class.forName("com.mysql.cj.jdbc.Driver");

2.获取链接

Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/cadastre","root","XXXXXX");

3.准备SQL以及发送SQL的工具

String sql="select * from datatables";

4.执行SQL

ResultSet resultSet = statement.executeQuery(sql);

5.处理结果集

while(resultSet.next()){
    String value= resultSet.getString("XXX");
}

6.释放资源

四、JDBC操作示例

  • PrepareStatement示例
public void testJdbc(){
   try {
       Class.forName("com.mysql.jdbc.Driver");
       String url="jdbc:mysql://127.0.0.1:3306/goyeerDB";
       String username = "username";
       String password = "password";
       Connection connection= DriverManager.getConnection(url,username,password);
       String sql="select * from xxxtable";
       PreparedStatement statement=connection.prepareStatement(sql);
       statement.executeUpdate();
    }catch (Exception ex){
    }
}
  • Statement示例
public void testStatement(){
    try {
        Class.forName("com.mysql.jdbc.Driver");
        String url="jdbc:mysql://127.0.0.1:3306/goyeerDB";
        String username = "username";
        String password = "password";
        Connection connection= DriverManager.getConnection(url,username,password);
        String sql="";
        Statement statement=connection.createStatement();
        statement.executeUpdate(sql);
    }catch (Exception ex){
    }
}

五、JDBC功能详解

1.DriverManager驱动管理对象

  • 注册驱动(MYSQL5之后直接忽略驱动)
  • 注册给定的驱动程序
static void registerDriver(Driver driver);
  • 写代码使用
Class.forName("com.mysql.jdbc.Driver");
  • com.mysql.jdbc.Driver类中存在静态代码块

2.Connection数据库连接对象

  1. connection类主要有两个作用:一是可以获取执行sql的对象,二是管理事务的功能;
  • 获取数据库连接对象:DriverManager.getConnection(数据库地址,用户名,密码);
  • 返回值:Connection数据库连接对象;

3.Statement执行SQL语句的对象

  • 获取执行者对象
  1. 获取普通执行者对象: Statement connection.createStatement0;
  2. 获取预编译执行者对象:PreparedStatement prepareStatement(String sql);
  • 管理事务
  1. 开启事务 : setAutoCommit(boolean autoCommit);参数为false,则开启事务
  2. 提交事务:commit();
  3. 回滚事务: rollback();
  • 释放对象
    立即将数据库连接对象释放:void close();
  • 执行DML语句:
    int executeUpdate(String sql);
    返回值int :返回影响的行数。
    参数sql:可以执行insert、update、delete语句
  • 执行DQL语句:
    ResultSet executeQuery(String sql);
    返回值ResultSet:封装查询的结果;
    参数sql:可以执行select语句;
  • 释放资源
    立即将数据库连接对象释放:void close();

4.ResultSet结果集对象

  • 判断结果集中是否还有数据:
    boolean next();有数据返回true,并将索引向下移动一行。没有数据返回false;
  • 获取结果集中的数据
  • resultSet.getBigDecimal();
  • resultSet.getInt();
  • resultSet.getShort();
  • resultSet.getBoolean();
  • resultSet.getString();
  • resultSet.getNString();
  • 释放资源
    立即将结果集对象释放:void close();


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
77 2
|
1天前
|
Java 数据库连接 数据库
springboot java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver应该如何解决
通过上述步骤,可以有效解决Spring Boot项目中遇到的 `java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver`问题。确保在项目中正确添加达梦数据库的JDBC驱动依赖,并在配置文件中正确配置数据源信息,是解决此问题的关键。通过这些方法,可以确保Spring Boot项目能够正确连接达梦数据库并正常运行。
49 31
|
4月前
|
Java 关系型数据库 数据库连接
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
53 8
|
4月前
|
Java 数据库连接 API
JDBC:Java数据库连接的“黑科技”大揭秘
JDBC:Java数据库连接的“黑科技”大揭秘
41 7
|
4月前
|
SQL Java 数据库连接
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
45 3
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
490 37
|
2月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
27 1
|
2月前
|
Oracle Java 关系型数据库
|
3月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)