Java不使用框架,简单使用JDBC封装MySQL连接【新手向】

发布时间:2024年01月09日

(完整代码放在末尾自取)

对于初学者来说,理解和配置Mybatis、SSM(Spring + SpringMVC + MyBatis)以及连接池等相对复杂的技术可能会是一项挑战。特别是当涉及到数据库连接的配置时,如何确保代码的复用性和易于修改性往往是一个难题。本文将指导你如何简化MySQL连接的封装和使用。

首先,创建一个新的Maven项目,在pom.xml导入MySQL的依赖:

        <!--Mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>

等待下载完成后即可。

第二步,在resources(src\main\resources)文件夹下新建一个配置文件db.properties

配置文件中填写自己的数据库:

db.url=jdbc:mysql://localhost:3306/test_mysql?useUnicode=true&characterEncoding=UTF-8
db.username=root
db.password=123456

这里我使用本地连接,所以是localhost,如果是连接服务器需要替换为服务器IP

参数解释(理解可跳过):

链接地址后的test_mysql为要连接的数据库,请大家依据自己的实际名字替换

使用参数 useUnicode=true&characterEncoding=UTF-8 防止中文乱码

db.username为用户名
db.password为密码

第三步,编写封装类:

这里我使用类名为 DatabaseConnector ,大家可以自行命名

导入包:

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

编写 getConnection() 类,用于链接数据库:

    public static Connection getConnection() throws SQLException {
        try (InputStream input = DatabaseConnector.class.getClassLoader().getResourceAsStream("db.properties")) {
            Properties prop = new Properties();
            if (input == null) {
                System.out.println("未找到配置文件");
                return null;
            }

            // 加载配置文件
            prop.load(input);

            // 获取数据库配置
            String url = prop.getProperty("db.url");
            String username = prop.getProperty("db.username");
            String password = prop.getProperty("db.password");

            return DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            throw new SQLException("无法连接到数据库", e);
        }
    }

编写? closeConnection(Connection connection) 用于关闭数据库链接:

    public static void closeConnection(Connection connection) {
        try {
            if (connection != null && !connection.isClosed()) {
                connection.close();
                System.out.println("连接关闭");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

第四步,写一个主类进行测试:

    public static void main(String[] args) {
        Connection connection = null;
        try {
            connection = getConnection();
            System.out.println("成功连接到数据库!");
           
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeConnection(connection);
        }
    }

如下返回则正确连接。

整个DatabaseConnector代码:

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DatabaseConnector {

    public static Connection getConnection() throws SQLException {
        try (InputStream input = DatabaseConnector.class.getClassLoader().getResourceAsStream("db.properties")) {
            Properties prop = new Properties();
            if (input == null) {
                System.out.println("未找到配置文件");
                return null;
            }

            // 加载配置文件
            prop.load(input);

            // 获取数据库配置
            String url = prop.getProperty("db.url");
            String username = prop.getProperty("db.username");
            String password = prop.getProperty("db.password");

            return DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            throw new SQLException("无法连接到数据库", e);
        }
    }

    public static void closeConnection(Connection connection) {
        try {
            if (connection != null && !connection.isClosed()) {
                connection.close();
                System.out.println("连接关闭");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Connection connection = null;
        try {
            connection = getConnection();
            System.out.println("成功连接到数据库!");

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeConnection(connection);
        }
    }
}

文章来源:https://blog.csdn.net/Corrupt_jm/article/details/135441206
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。