JDBC使用
发布日期:2021-05-16 15:02:44 浏览次数:16 分类:精选文章

本文共 3987 字,大约阅读时间需要 13 分钟。

JDBC 入门

Eclipse环境配置

在开始 JDBC 开发之前,需要熟悉 Eclipse 的基本操作。这将帮助你更有效地编写和调试 Java 代码。

自动代码补全

Eclipse 的默认代码补全设置可能会cacique到开发者。我们可以进行如下配置:

  • 启用自动补全
    • Window > Preferences > Java > Editor > Content Assist
    • 找到 Auto activation triggers for Java 选项卡,将 . 后的文本框添加 "qwertyuiopasdfghjklzxcvbnm"。
    • 这样你可以在输入任意字母时都能得到代码提示。
  • 常用快捷键

    • Keyboard Shortcuts Reference
      • Ctrl + Shift + R:打开资源列表
      • Ctrl + Shift + F:格式化代码
      • Ctrl + E:快速切换编辑器
      • Shift + Enter:在当前行或下一行创建空白

    JDBC 基本概念

    JDBC(Java Database Connectivity)是 Java 提供的一个标准接口,允许程序与数据库进行交互。它的主要目标是为不同数据库系统提供统一的访问方式,简化数据库操作。

    JDBC 的优点

    • 统一接口:无需了解具体数据库的操作细节。
    • 灵活性:可以连接任何支持 JDBC 的数据库系统。
    • 简化开发:代码简单易懂,减少学习成本。

    数据库连接池优化

    直接使用 DriverManager 获取数据库连接存在许多问题:资源浪费、性能低下等。数据库连接池的引入是解决这些问题的关键。

    数据库连接池的优势

    • 连接缓存:预先创建连接并缓存起来,减少每次连接获取的延迟。
    • 连接管理:自动归还连接,避免资源耗尽。
    • 高并发支持:可以处理大量同时访问数据库的事并发。

    常用连接池实现

    • DBCP:Apache 提供,性能较高但有一些Bug。
    • C3P0: Hibernate 推荐,稳定性较好。
    • Druid:由阿里开源平台提供,性能优异,支持监控。

    JDBC 编程实例

    第一步:获取数据库连接

    1.azelxnaw rqjrotg(DruidDataSourceFactory.createDataSource(pros)) 创建数据源。 2.azotivot zrxnek Juli Connections getConnection() 获取数据库连接。

    第二步:执行 SQL 语句

    UPDATE 语句

    • 使用 StatementPreparedStatement 进行插入、更新和删除操作。
    • PreparedStatement 是-offsetloat 类,因为它可以防止 SQL 注入攻击。

    QUERY 语句

    • 使用 ResultSet 对象处理查询结果。
    • ResultSetMetaData 提供关于结果集的元数据。

    第三步:批量操作

    对于批量插入或更新,可以使用 PreparedStatementaddBatch()executeBatch() 方法。

    BLOB 数据处理

    MySQL 中,BLOB 是一个二进制大型对象,用于存储大量数据。

    • 插入
      使用 setBlob() 方法将二进制输入流添加到数据库中。
    • 读取
      使用 getBlob() 方法获取 BLOB 数据,并将其转换为二进制流保存。

    DAO 模板化开发

    DAO 设计思想

    • 模块化:将数据访问逻辑封装成独立的类。
    • 接口定义:定义标准的数据操作接口,提高代码可维护性。

    创建 DAO 实现类

    比如,用于操作 Customer 表的 DAO 类结构如下:

    └── src
    ├── com
    │ └── atuse
    │ └── dao
    │ ├── BaseDAO.java
    │ ├── CustomerDAO.java
    │ └── CustomerDAOImpl.java

    SQL 操作方法

    • 插入

      public void insert(String sql, Object... args) {
      Connection conn = null;
      try {
      conn = JDBCUtils.getConnection();
      PreparedStatement ps = conn.prepareStatement(sql);
      for (int i = 0; i < args.length; i++) {
      ps.setObject(i + 1, args[i]);
      }
      ps.execute();
      JDBCUtils.closeResource(conn, ps);
      } catch (Exception e) {
      e.printStackTrace();
      }
      }
    • 查询

      public T getInstance(Class
      clazz, String sql, Object... args) {
      Connection conn = null;
      try {
      conn = JDBCUtils.getConnection();
      PreparedStatement ps = conn.prepareStatement(sql);
      for (int i = 0; i < args.length; i++) {
      ps.setObject(i + 1, args[i]);
      }
      ResultSet rs = ps.executeQuery();
      // 处理 ResultSet 类型
      ...
      return null;
      } catch (Exception e) {
      e.printStackTrace();
      }
      return null;
      }
    • 批量处理

      public int[] batchInsert(String sql, Object[] params) {
      Connection conn = null;
      try {
      conn = JDBCUtils.getConnection();
      PreparedStatement ps = conn.prepareStatement(sql);
      for (int i = 0; i < params.length; i++) {
      ps.setObject(i + 1, params[i]);
      ps.addBatch();
      }
      int[] results = ps.executeBatch();
      ps.clearBatch();
      return results;
      } catch (Exception e) {
      e.printStackTrace();
      }
      return new int[0];
      }

    Apache Commons DbUtils

    功能简介

    Commons DbUtils 是 Apache 提供的一个简化 JDBC 编程的工具类库,简化了数据库操作。

    主要功能

    • 连接管理:提供工具类对数据库连接、预编译语句和结果集进行管理。
    • 批量操作:支持批量插入、更新和删除。
    • ResultSet Handler:处理结果集,支持将查询结果转换为 Java 对象。

    常用 API

    • QueryRunner:简化数据库操作。
    • ResultSetHandler:定义处理结果集的接口。

    使用 Commons DbUtils 能够显著减少 JDBC 代码量,同时保持性能。


    SQL 与 Java 数据类型转换

    以下是常见的 SQL 数据类型及其对应的 Java 数据类型:

    Java 类型 SQL 类型
    boolean TINYINT
    byte SMALLINT
    char VARCHAR
    short MEDIUMINT
    int INTEGER
    long BIGINT
    String CHAR, VARCHAR
    byte array BINARY, VARBINARY
    java.sql.Date DATE
    java.sql.Time TIME
    java.sql.Timestamp TIMESTAMP

    开源数据库连接工具

    选择合适的数据库连接工具对提升开发效率有显著帮助。下列是几种常用的工具:

  • MySQL:开源的关系型数据库。
  • MariaDB:提供更强的灵活性。
  • PostgreSQL:支持事务和 ACID特性。
  • Oracle:商业数据库,功能强大但成本较高。

  • 扩展优化

    配置管理

    将数据库连接信息放在配置文件(如 jdbc.properties)中,灵活管理配置参数。

    连接池监控

    使用 Druid 连接池可以实现对数据库连接池和 SQL 进行实时监控。


    最后

    通过熟悉 JDBC 基本操作、使用连接池优化数据库访问,并结合工具类如 Commons DbUtils,可以显著提升 Java 功能开发效率。这篇指南为你提供了 JDBC 编程的实用建议和代码示例。

    上一篇:Kotlin 语言的入门使用
    下一篇:Maven入门基础

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年05月11日 23时09分41秒