java连数据库

一、准备工作

  1. ​安装MySQL数据库​

    确保已安装MySQL服务器并启动服务

  2. ​下载JDBC驱动​

    • 官方驱动:MySQL Connector/J

    • Maven依赖:

      XML 复制代码
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.28</version>
      </dependency>

      <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency>

二、基础连接步骤

java 复制代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySQLDemo {
    // 数据库信息
    static final String URL = "jdbc:mysql://localhost:3306/mydatabase";
    static final String USER = "root";
    static final String PASSWORD = "123456";

    public static void main(String[] args) {
        Connection conn = null;
        try {
            // 1. 加载驱动(JDBC 4.0+ 可自动加载)
            Class.forName("com.mysql.cj.jdbc.Driver");
            
            // 2. 建立连接
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
            
            // 3. 使用连接进行数据库操作
            System.out.println("连接成功!");
            
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            // 4. 关闭连接
            try {
                if(conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

三、关键参数说明

  1. ​连接URL格式​

    复制代码
    jdbc:mysql://[host][:port]/[database][?参数]
    • 常用参数:
      • useSSL=false 禁用SSL(开发环境建议)
      • serverTimezone=UTC 设置时区
      • characterEncoding=utf8 字符编码
  2. ​推荐完整URL​

    java 复制代码
    String URL = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8";

四、执行SQL操作

1. 查询数据示例
java 复制代码
Statement stmt = null;
ResultSet rs = null;
try {
    stmt = conn.createStatement();
    rs = stmt.executeQuery("SELECT id, name FROM users");
    
    while(rs.next()) {
        int id = rs.getInt("id");
        String name = rs.getString("name");
        System.out.println(id + ": " + name);
    }
} finally {
    if(rs != null) rs.close();
    if(stmt != null) stmt.close();
}
2. 使用PreparedStatement(推荐)
java 复制代码
String sql = "INSERT INTO users(name, age) VALUES(?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, "张三");
    pstmt.setInt(2, 25);
    int rows = pstmt.executeUpdate();
    System.out.println("插入" + rows + "条记录");
}

五、事务管理

java 复制代码
try {
    conn.setAutoCommit(false); // 关闭自动提交
    
    // 执行多个SQL操作...
    
    conn.commit(); // 提交事务
} catch (SQLException e) {
    try {
        conn.rollback(); // 回滚事务
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    e.printStackTrace();
} finally {
    conn.setAutoCommit(true); // 恢复自动提交
}

六、常见问题排查

  1. ​驱动加载失败​

    • 确认jar包已正确添加到classpath
    • 检查驱动类名是否正确(新版使用com.mysql.cj.jdbc.Driver
  2. ​连接超时​

    • 检查MySQL服务是否运行
    • 验证用户名/密码是否正确
    • 检查防火墙设置
  3. ​时区问题​

    java 复制代码
    // 在连接URL中添加时区参数 ?serverTimezone=Asia/Shanghai

七、连接池推荐

对于生产环境,建议使用连接池:

  • HikariCP(性能最佳)
  • Druid(阿里出品,带监控功能)

HikariCP简单示例:

java 复制代码
HikariConfig config = new HikariConfig();
config.setJdbcUrl(URL);
config.setUsername(USER);
config.setPassword(PASSWORD);

try (HikariDataSource ds = new HikariDataSource(config);
     Connection conn = ds.getConnection()) {
    // 使用连接...
}
相关推荐
超级大只老咪37 分钟前
蓝桥杯知识点大纲(JavaC组)
java·算法·蓝桥杯
狂盗一枝梅41 分钟前
MySql8.0公共表表达式『CTE』
mysql·cte
Yiii_x41 分钟前
如何使用IntelliJ IDEA进行Java编程
java·课程设计·ai编程
凡间客44 分钟前
MySQL Galera Cluster部署
数据库·mysql
阿杰AJie1 小时前
如何在程序中避免出现大量if和case
java·后端
摇滚侠1 小时前
Spring Boot3零基础教程,云服务停机不收费,笔记71
java·spring boot·笔记
豐儀麟阁贵1 小时前
5.5类的主方法
java·开发语言
不光头强1 小时前
maven进阶
java·maven
智海观潮1 小时前
聊聊Spark的分区
java·大数据·spark
rengang662 小时前
020-Spring AI Alibaba DashScope Image 功能完整案例
java·人工智能·spring·spring ai·ai应用编程