我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用JDBC连接数据库并执行SQL语句

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用JDBC连接数据库并执行SQL语句

1. JDBC入门

JDBC(Java Database Connectivity)是Java程序与数据库进行交互的一种标准接口,它提供了一种简单的方式来连接和操作数据库。在使用JDBC之前,需要先了解以下几个概念:

  • JDBC Driver:JDBC驱动程序是一个Java类,用于将Java应用程序与特定数据库管理系统(DBMS)连接。JDBC驱动程序分为四种类型:JDBC-ODBC桥接驱动程序、本地API驱动程序、网络协议驱动程序和本地协议驱动程序。
  • Connection:Connection是一个JDBC接口,用于连接到数据库。在Java程序中,通过Connection接口的实现类来实现与数据库的连接。
  • Statement:Statement是一个JDBC接口,用于向数据库发送SQL语句并执行它们。在Java程序中,通过Connection对象创建Statement对象。
  • ResultSet:ResultSet是一个JDBC接口,用于表示从数据库中检索到的结果集。ResultSet对象通过Statement对象的executeQuery()方法返回。

下面是一个简单的JDBC连接示例:

import java.sql.*;
public class JDBCDemo {
    public static void main(String[] args) {
        try {
            // 加载JDBC驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 建立数据库连接
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
            // 执行SQL查询
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM users");
            while (rs.next()) {
                System.out.println(rs.getInt(1) + ", " + rs.getString(2) + ", " + rs.getString(3));
            }
            // 关闭数据库连接
            rs.close();
            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2. 抽取工具类

在实际开发中,我们通常会抽取出一个JDBC工具类来封装JDBC相关操作,以方便代码的重用和维护。下面是一个简单的JDBC工具类示例:

import java.sql.*;
public class JDBCUtils {
    private static final String URL = "jdbc:mysql://localhost:3306/mydb";
    private static final String USER = "root";
    private static final String PASSWORD = "password";
    static {
        try {
            // 加载JDBC驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() {
        Connection conn = null;
        try {
            // 建立数据库连接
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
    public static void release(ResultSet rs, Statement stmt, Connection conn) {
        try {
            if (rs != null) rs.close();
            if (stmt != null) stmt.close();
            if (conn != null) conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3. Statement CRUD

Statement是JDBC中最基本的操作方式,它用于向数据库发送SQL语句并执行它们。下面是一个使用Statement进行CRUD操作的示例:

import java.sql.*;
public class StatementCRUD {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            conn = JDBCUtils.getConnection();
            stmt = conn.createStatement();
            // 插入数据
            String sql = "INSERT INTO users (name, age) VALUES ('Tom', 18)";
            stmt.executeUpdate(sql);
            // 更新数据
            sql = "UPDATE users SET age = 20 WHERE name = 'Tom'";
            stmt.executeUpdate(sql);
            // 删除数据
            sql = "DELETE FROM users WHERE age = 20";
            stmt.executeUpdate(sql);
            // 查询数据
            sql = "SELECT * FROM users";
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
                System.out.println(rs.getInt(1) + ", " + rs.getString(2) + ", " + rs.getInt(3));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(rs, stmt, conn);
        }
    }
}

4. 演练CRUD

下面是一个使用PreparedStatement进行CRUD操作的示例:

import java.sql.*;
public class PreparedStatementCRUD {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            conn = JDBCUtils.getConnection();
            // 插入数据
            String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "Tom");
            pstmt.setInt(2, 18);
            pstmt.executeUpdate();
            // 更新数据
            sql = "UPDATE users SET age = ? WHERE name = ?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 20);
            pstmt.setString(2, "Tom");
            pstmt.executeUpdate();
            // 删除数据
            sql = "DELETE FROM users WHERE age = ?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 20);
            pstmt.executeUpdate();
            // 查询数据
            sql = "SELECT * FROM users";
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getInt(1) + ", " + rs.getString(2) + ", " + rs.getInt(3));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(rs, pstmt, conn);
        }
    }
}

5. Dao模式(声明与实现分开)

Dao(Data Access Object)模式是一种用于封装数据访问逻辑的设计模式。它将数据访问逻辑与业务逻辑分离开来,使得代码更易于维护和扩展。下面是一个使用Dao模式进行CRUD操作的示例:

import java.sql.*;
public class UserDAO {
    private static final String INSERT_SQL = "INSERT INTO users (name, age) VALUES (?, ?)";
    private static final String UPDATE_SQL = "UPDATE users SET age = ? WHERE name = ?";
    private static final String DELETE_SQL = "DELETE FROM users WHERE age = ?";
    private static final String SELECT_SQL = "SELECT * FROM users";
    public void insert(User user) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = JDBCUtils.getConnection();
            pstmt = conn.prepareStatement(INSERT_SQL);
            pstmt.setString(1, user.getName());
            pstmt.setInt(2, user.getAge());
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(null, pstmt, conn);
        }
    }
    public void update(User user) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = JDBCUtils.getConnection();
            pstmt = conn.prepareStatement(UPDATE_SQL);
            pstmt.setInt(1, user.getAge());
            pstmt.setString(2, user.getName());
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(null, pstmt, conn);
        }
    }
    public void delete(int age) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = JDBCUtils.getConnection();
            pstmt = conn.prepareStatement(DELETE_SQL);
            pstmt.setInt(1, age);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(null, pstmt, conn);
        }
    }
    public List<User> selectAll() {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        List<User> userList = new ArrayList<>();
        try {
            conn = JDBCUtils.getConnection();
            pstmt = conn.prepareStatement(SELECT_SQL);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt(1));
                user.setName(rs.getString(2));
                user.setAge(rs.getInt(3));
                userList.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(rs, pstmt, conn);
        }
        return userList;
    }
}
public class User {
    private int id;
    private String name;
    private int age;
    // 省略getter、setter方法
}

6. PrepareStatement CRUD

PreparedStatement是一种预编译的Statement,它可以通过占位符的方式来替换SQL语句中的参数,避免了SQL注入的危险。下面是一个使用PreparedStatement进行CRUD操作的示例:

import java.sql.*;
public class PrepareStatementCRUD {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            conn = JDBCUtils.getConnection();
            // 插入数据
            String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "Tom");
            pstmt.setInt(2, 18);
            pstmt.executeUpdate();
            // 更新数据
            sql = "UPDATE users SET age = ? WHERE name = ?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 20);
            pstmt.setString(2, "Tom");
            pstmt.executeUpdate();
            // 删除数据
            sql = "DELETE FROM users WHERE age = ?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 20);
            pstmt.executeUpdate();
            // 查询数据
            sql = "SELECT * FROM users";
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getInt(1) + ", " + rs.getString(2) + ", " + rs.getInt(3));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(rs, pstmt, conn);
        }
    }
}

以上就是关于JDBC入门、抽取工具类、Statement CRUD、演练CRUD、Dao模式(声明与实现分开)、PrepareStatement CRUD的详细介绍和代码示例。通过学习这些内容,可以让我们更好地掌握JDBC的使用和开发技巧,从而更好地应用到实际的项目中。

到此这篇关于如何使用JDBC连接数据库并执行SQL语句的文章就介绍到这了,更多相关JDBC连接数据库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何使用JDBC连接数据库并执行SQL语句

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用JDBC连接数据库并执行SQL语句

JDBC是Java数据库连接的缩写,是Java程序与数据库进行交互的标准API。JDBC主要包括Java.sql和javax.sql两个包,通过DriverManager获取数据库连接对象Connection,并通过Statement或PreparedStatement执行SQL语句
2023-05-18

java如何使用jdbc执行sql语句

Java使用JDBC执行SQL语句JDBC允许Java程序与数据库交互。执行SQL语句包括:加载JDBC驱动程序建立数据库连接创建Statement对象(PreparedStatement或Statement)执行SQL语句处理结果(如有)释放资源示例:Connectionconn=DriverManager.getConnection(...);Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery("SELECT*FROMt
java如何使用jdbc执行sql语句
2024-04-11

java如何使用jdbc执行sql语句

要使用Java中的JDBC执行SQL语句,你需要执行以下步骤:1. 导入JDBC相关的包:```javaimport java.sql.*;```2. 加载JDBC驱动程序:```javaClass.forName("com.mysql.c
2023-09-20

IDEA连接MySQL数据库并执行SQL语句使用数据图文详解

目录一、IDEA连接mysql数据库(一)首先新建普通Java项目(二)连接数据库二、使用数据库的数据(一)新建Java类 Test(二)下载MySQL驱动Jar包(三)返回IDEA,新建文件夹lib(四)非常重要(添加到库)(五)编写Te
2023-03-23

PHP数据库学习之如何使用PDO执行SQL语句

这篇文章主要讲解了“PHP数据库学习之如何使用PDO执行SQL语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP数据库学习之如何使用PDO执行SQL语句”吧!exec() 方法在我们执
2023-06-25

如何连接到PostgreSQL数据库并执行查询

要连接到PostgreSQL数据库并执行查询,您可以使用以下步骤:安装PostgreSQL数据库并确保它正在运行。安装适当的PostgreSQL驱动程序(如psycopg2)以便在Python中连接到数据库。在Python脚本中导入所需
如何连接到PostgreSQL数据库并执行查询
2024-04-09

怎么连接数据库并执行SQL查询操作

要连接数据库并执行SQL查询操作,可以按照以下步骤进行:选择合适的数据库管理系统(如MySQL、SQL Server、Oracle等)并安装相应的数据库驱动程序。使用编程语言(如Java、Python、C#等)编写代码来连接数据库。以下是一
怎么连接数据库并执行SQL查询操作
2024-04-09

使用SQL语句备份并压缩数据库

要备份并压缩数据库,您可以使用以下SQL语句:1. 创建备份数据库的脚本:```sqlBACKUP DATABASE [YourDatabaseName]TO DISK = N'C:\Backup\YourDatabaseName.bak'
2023-09-22

如何使用SQL语句在MySQL中进行数据连接和联合查询?

如何使用SQL语句在MySQL中进行数据连接和联合查询?数据连接和联合查询是 SQL 语言中常用的技巧,能够在多个表中获取和筛选所需的数据。在 MySQL 中,我们可以通过使用 JOIN 子句来实现数据连接,使用 UNION 和 UNION
如何使用SQL语句在MySQL中进行数据连接和联合查询?
2023-12-17

如何使用BAT批处理执行sql语句

本篇内容介绍了“如何使用BAT批处理执行sql语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、把待执行Sql保存在一个文件,这里为20
2023-06-08

Python中如何建立与MySQL数据库的安全连接并进行数据交互?(如何使用Python安全地连接到MySQL数据库并执行数据操作?)

本文章详细讲解了如何使用Python安全地连接MySQL数据库并进行数据操作。为了建立安全连接,需配置数据库访问权限、使用SSL加密和密码。Python中的连接配置可通过mysql.connector库实现。数据交互操作包括创建游标、执行查询、获取结果、修改数据和提交更改。安全性最佳实践建议遵循最小权限原则、定期更改密码、使用防火墙、IDS和保持软件更新。
Python中如何建立与MySQL数据库的安全连接并进行数据交互?(如何使用Python安全地连接到MySQL数据库并执行数据操作?)
2024-04-02

阿里云数据库结束执行语句如何正确使用

在阿里云数据库中,结束执行语句是一个非常重要的概念。本文将介绍什么是结束执行语句,以及如何正确使用它。阿里云数据库是一种高性能、高可靠性的云数据库服务。在使用阿里云数据库时,我们经常需要执行一些复杂的SQL语句。但是,有些SQL语句可能会耗费大量的时间和资源,因此我们需要及时终止这些语句的执行。这时,结束执行语句
阿里云数据库结束执行语句如何正确使用
2024-01-18

如何使用connectionStrings连接SQL Server数据库

要使用connectionStrings连接SQL Server数据库,您需要向web.config文件或app.config文件添加一个连接字符串。下面是一些步骤:1. 打开您的项目中的web.config(ASP.NET项目)或app.
2023-08-23

使用Java如何连接MySQL数据库并进行操作

这篇文章给大家介绍使用Java如何连接MySQL数据库并进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 连接数据库  (1) 下载Mysql连接驱动网址: http://dev.mysql.com/down
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录