详解Java基础知识——JDBC

详解Java基础知识——JDBC

JDBC的介绍

JDBC(Java Database Connectivity)是Java语言中用于操作关系型数据库的API,通过JDBC可以实现Java与数据库之间的交互。JDBC主要包含以下几个部分:

  • DriverManager:驱动管理器,用于管理各种数据库驱动。
  • Connection:连接对象,用于与数据库建立连接。
  • Statement:语句对象,用于执行静态SQL查询。
  • PreparedStatement:预编译语句对象,用于执行动态SQL查询。
  • CallableStatement:可调用语句对象,用于执行存储过程。
  • ResultSet:结果集对象,用于封装查询结果。

JDBC的使用

在使用JDBC时,需要完成以下几个步骤:

  1. 加载数据库驱动,通过Class.forName()方法加载对应数据库的驱动。
  2. 建立数据库连接,使用DriverManager.getConnection()方法建立与数据库的连接。
  3. 创建语句对象,使用Connection对象的createStatement()、prepareStatement()或prepareCall()方法创建语句对象。
  4. 执行SQL语句,使用Statement对象、PreparedStatement对象或CallableStatement对象执行SQL语句。
  5. 处理查询结果,使用ResultSet对象处理查询结果并对其进行业务处理。
  6. 关闭数据库连接和相关资源,使用Connection对象、Statement对象、PreparedStatement对象、CallableStatement对象和ResultSet对象的close()方法关闭相关资源。

示例1:使用Statement对象执行静态SQL查询

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
    // 加载MySQL数据库驱动
    Class.forName("com.mysql.cj.jdbc.Driver");
    // 建立与MySQL数据库的连接
    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "root";
    conn = DriverManager.getConnection(url, user, password);
    // 创建Statement对象,执行SQL查询
    stmt = conn.createStatement();
    String sql = "SELECT * FROM student";
    rs = stmt.executeQuery(sql);
    // 处理查询结果
    while(rs.next()){
        int id = rs.getInt("id");
        String name = rs.getString("name");
        int age = rs.getInt("age");
        System.out.println("id: " + id + ", name: " + name + ", age: " + age);
    }
} catch(Exception e){
    e.printStackTrace();
} finally{
    // 关闭数据库连接和相关资源
    try{if(rs != null) rs.close();}catch(Exception e){}
    try{if(stmt != null) stmt.close();}catch(Exception e){}
    try{if(conn != null) conn.close();}catch(Exception e){}
}

示例2:使用PreparedStatement对象执行动态SQL查询

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
    // 加载Oracle数据库驱动
    Class.forName("oracle.jdbc.driver.OracleDriver");
    // 建立与Oracle数据库的连接
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:test";
    String user = "test";
    String password = "test";
    conn = DriverManager.getConnection(url, user, password);
    // 创建PreparedStatement对象,执行SQL查询
    String sql = "SELECT * FROM student WHERE id = ?";
    pstmt = conn.prepareStatement(sql);
    pstmt.setInt(1, 1);
    rs = pstmt.executeQuery();
    // 处理查询结果
    while(rs.next()){
        int id = rs.getInt("id");
        String name = rs.getString("name");
        int age = rs.getInt("age");
        System.out.println("id: " + id + ", name: " + name + ", age: " + age);
    }
} catch(Exception e){
    e.printStackTrace();
} finally{
    // 关闭数据库连接和相关资源
    try{if(rs != null) rs.close();}catch(Exception e){}
    try{if(pstmt != null) pstmt.close();}catch(Exception e){}
    try{if(conn != null) conn.close();}catch(Exception e){}
}

以上两个示例分别演示了使用Statement对象和PreparedStatement对象执行静态SQL查询和动态SQL查询,在实际开发中可以根据具体的需求选择合适的方式。同时,为了避免出现资源泄露或者性能问题,我们需要在代码中及时关闭相关资源。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java基础知识——JDBC - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • IDEA整合SSM框架实现网页上显示数据

    下面我为你详细讲解“IDEA整合SSM框架实现网页上显示数据”的完整攻略。 简介 SSM框架是目前Java Web开发中最流行的框架之一,它包含Spring、SpringMVC和MyBatis三大框架,其中Spring负责类似于IOC(控制反转)、AOP(面向切面编程)等基本功能,SpringMVC负责Web层的处理,MyBatis则负责持久层的管理。IDE…

    Java 2023年6月15日
    00
  • 中英文对照Stargate中的科学与技术

    “中英文对照Stargate中的科学与技术”攻略 为什么需要这个攻略? 《星际之门》(Stargate)是一部著名的科幻电视剧,其中出现了许多科学与技术术语和概念。对于英语不是母语的观众,有时会很难理解这些术语的含义。因此,本攻略旨在为大家提供一份中英文对照的Stargate科学与技术词汇表,方便观众更好地理解这部电视剧。 收集信息 收集中英文对照的Star…

    Java 2023年5月19日
    00
  • SpringBoot集成FastDFS+Nginx整合基于Token的防盗链的方法

    下面是 SpringBoot 集成 FastDFS+Nginx 整合基于 Token 的防盗链的方法的完整攻略: 简介 FastDFS 是一个开源的分布式文件系统,由阿里巴巴的余庆编写,目前由开源社区进行开发,FastDFS 是基于 Linux 的文件系统,实现了一个简单的文件系统,它是以 Tracker Server 和 Storage Server 为两…

    Java 2023年5月20日
    00
  • SpringMVC的执行流程及组件详解

    以下是关于“SpringMVC的执行流程及组件详解”的完整攻略,其中包含两个示例。 SpringMVC的执行流程及组件详解 SpringMVC是一个基于MVC模式的Web框架,它可以帮助我们快速开发Web应用程序。本文将介绍SpringMVC的执行流程及组件详解,并提供两个示例。 SpringMVC的执行流程 SpringMVC的执行流程可以分为以下几个步骤…

    Java 2023年5月16日
    00
  • springBoot集成mybatis 转换为 mybatis-plus方式

    以下是使用springBoot集成mybatis转换为mybatis-plus的完整攻略。 1. 添加mybatis-plus依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</art…

    Java 2023年5月20日
    00
  • js将键值对字符串转为json字符串的方法

    将键值对字符串转为JSON字符串的方法,可以使用JSON.parse()函数来实现。下面给出详细的攻略。 1. 确认键值对字符串的格式 在转换之前,需要确保键值对字符串的格式正确。格式应该是键值对之间使用逗号分隔,键与值之间使用冒号分隔,整个字符串包裹在一对花括号内。 例如,以下的字符串是合法的键值对字符串: {"name": &quot…

    Java 2023年5月26日
    00
  • java开发之闹钟的实现代码

    下面是“Java开发之闹钟的实现代码”完整攻略: 一、准备工作 确定闹钟的功能需求,如:设定时间,响铃提示等; 选定合适的Java开发IDE,如Eclipse或IntelliJ IDEA; 确定使用的Java版本,本项目中使用Java 8。 二、项目搭建 新建Java项目,并创建一个Clock类; 创建一个定时器Timer,并设定定时任务,如下: timer…

    Java 2023年5月19日
    00
  • nginx lua集成kafka的实现方法

    下面我将为你详细讲解“nginx lua集成kafka的实现方法”的完整攻略。 准备工作 安装Openresty 安装kafka 代码实现 安装kafka-lua kafka-lua具体安装步骤可参考Github官网:kafka-lua。 lua代码基本骨架 local producers = require ("resty.kafka.produ…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部