【JAVA基础】- JAVA中JDBC详解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
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();


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
Java 测试技术 数据库
【JAVA基础篇教学】第十七篇:Java单元测试
【JAVA基础篇教学】第十七篇:Java单元测试
|
14天前
|
Java 索引
【JAVA基础篇教学】第七篇:Java异常类型说明
【JAVA基础篇教学】第七篇:Java异常类型说明
|
2天前
|
Oracle Java 程序员
java基础篇-java入门认知
# Day01 —— Java基础入门概览 本文介绍了Java语言的背景知识、快速入门、开发工具以及基础语法。Java由Sun公司(现属Oracle)开发,创始人是詹姆斯·高斯林。Java可应用于桌面应用、企业级应用、移动应用、服务器系统和大数据开发等多个领域。Java技术体系包括Java SE(标准版)、Java EE(企业版)和Java ME(小型版)。 在开始编程前,需安装JDK,通过`javac`和`java`命令进行编译和运行。Java程序的执行依赖于Java虚拟机(JVM),实现跨平台运行。IDEA是常用的Java集成开发环境,提供代码提示、错误检查等功能,提高开发效率。
|
4天前
|
SQL Java 关系型数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
7 0
|
4天前
|
SQL Java 关系型数据库
Java核心-JDBC
Java核心-JDBC
5 1
|
5天前
|
SQL Java 关系型数据库
Java之JDBC数据库编程
Java之JDBC数据库编程
12 2
|
11天前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
14天前
|
SQL Java 数据库连接
Java一分钟之-JDBC:Java数据库连接基础
【5月更文挑战第14天】JDBC是Java与关系数据库交互的API,常见问题包括资源管理、SQL注入和性能优化。易错点涉及驱动加载、空指针异常和事务管理。避免这些问题的方法有使用try-with-resources自动关闭资源、预编译PreparedStatement以防止SQL注入,以及正确管理事务。示例代码展示了基本的JDBC连接和查询。在实际开发中,推荐使用ORM框架如Hibernate或JPA来简化数据库操作。
24 1
|
14天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
18 0
|
14天前
|
SQL Java 关系型数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库