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()) {
    // 使用连接...
}
相关推荐
snow@li1 小时前
Java:Java 服务器(Web 容器 / Servlet 容器)完整工作清单
java·服务器·前端
喜欢的名字被抢了1 小时前
MySQL核心机制:事务、锁与存储引擎
数据库·sql·mysql·教程
青山木1 小时前
Hot 100 --- 二叉树与递归
java·数据结构·算法·leetcode·深度优先
jason成都2 小时前
GNSS-QC 数据清洗功能全面增强|滑坡监测实测验证,适配 rtklib_java 高精度解算链路
java·gnss
前端工作日常2 小时前
我学习到的Java概念
java·后端
卓怡学长2 小时前
w263基于springboot + vue 健康饮食管理系统
java·数据库·vue.js·spring boot·spring·intellij-idea
r_oo_ki_e_2 小时前
Java反射机制学习笔记
java·笔记·学习
九皇叔叔2 小时前
RHEL9.8 配置本地镜像仓库
android·java·缓存
范什么特西2 小时前
苍穹外卖体会
java
Nontee2 小时前
数据类型与包装类 — 一个新手学Java的数据类型笔记
java·笔记·python