返回

《JavaWeb》JDBC实战

后端

前言

大家好,我是[掘金昵称],一位Java开发工程师。今天我想和大家分享一下我在《JavaWeb》JDBC实战中的一些经验和心得。

JDBC简介

JDBC是Java Database Connectivity的缩写,是一种用于执行SQL语句的Java API。JDBC提供了一种统一的接口,允许Java程序访问各种数据库系统。

JDBC的基本概念包括:

  • 数据库连接 :用于连接数据库的会话。
  • 语句对象 :用于执行SQL语句的Java对象。
  • 结果集 :执行SQL语句后返回的数据集。

JDBC提供了以下常用的方法:

  • connect():连接数据库。
  • createStatement():创建语句对象。
  • executeQuery():执行查询语句。
  • executeUpdate():执行更新语句。
  • close():关闭数据库连接。

使用JDBC进行数据库连接

以下是如何使用JDBC进行数据库连接的示例代码:

import java.sql.*;

public class JDBCExample {

    public static void main(String[] args) {
        // 定义数据库连接参数
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = "password";

        // 加载JDBC驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return;
        }

        // 建立数据库连接
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(url, username, password);
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 创建语句对象
        Statement statement = null;
        try {
            statement = connection.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 执行查询语句
        ResultSet resultSet = null;
        try {
            resultSet = statement.executeQuery("select * from user");
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 处理结果集
        while (resultSet.next()) {
            System.out.println(resultSet.getString("name"));
        }

        // 关闭结果集、语句对象和数据库连接
        try {
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

使用JDBC进行增删改查操作

以下是如何使用JDBC进行增删改查操作的示例代码:

import java.sql.*;

public class JDBCExample {

    public static void main(String[] args) {
        // 定义数据库连接参数
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = "password";

        // 加载JDBC驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return;
        }

        // 建立数据库连接
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(url, username, password);
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 创建语句对象
        Statement statement = null;
        try {
            statement = connection.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 执行增删改查操作
        try {
            // 插入数据
            statement.executeUpdate("insert into user (name, age) values ('张三', 20)");

            // 更新数据
            statement.executeUpdate("update user set age = 21 where name = '张三'");

            // 删除数据
            statement.executeUpdate("delete from user where name = '张三'");

            // 查询数据
            ResultSet resultSet = statement.executeQuery("select * from user");
            while (resultSet.next()) {
                System.out.println(resultSet.getString("name"));
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }

        // 关闭结果集、语句对象和数据库连接
        try {
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

使用JDBC进行事务管理

以下是如何使用JDBC进行事务管理的示例代码:

import java.sql.*;

public class JDBCExample {

    public static void main(String[] args) {
        // 定义数据库连接参数
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = "password";

        // 加载JDBC驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return;
        }

        // 建立数据库连接
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(url, username, password);
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 设置自动提交为false
        connection.setAutoCommit(false);

        // 创建语句对象
        Statement statement = null;
        try {
            statement = connection.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 执行事务操作
        try {
            // 插入数据
            statement.executeUpdate("insert into user (name, age) values ('张三', 20)");

            // 更新数据
            statement.executeUpdate("update user set age = 21 where name = '张三'");

            // 删除数据
            statement.executeUpdate("delete from user where name = '张三'");

            // 提交事务
            connection.commit();
        } catch (SQLException e) {
            // 回滚事务
            connection.rollback();
            e.printStackTrace();
        }

        // 关闭结果集、语句对象和数据库连接
        try {
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

使用JDBC进行连接池管理

以下是如何使用JDBC进行连接池管理的示例代码:

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

public class JDBCExample {

    public static void main(String[] args) {
        // 定义数据库连接参数
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = "password";

        // 创建数据源对象
        DataSource dataSource = null;
        try {
            dataSource = DruidDataSourceFactory.createDataSource(url, username, password);
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }

        // 获取数据库连接
        Connection connection = null;
        try {
            connection = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        }

        // 使用数据库连接执行操作

        // 释放数据库连接
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

总结

以上就是我对《JavaWeb》JDBC实战的一些经验和心得。希望对大家有所帮助。