当前位置: 首页 > article >正文

java连数据库

一、准备工作

  1. ​安装MySQL数据库​
    确保已安装MySQL服务器并启动服务

  2. ​下载JDBC驱动​

    • 官方驱动:MySQL Connector/J
    • Maven依赖:
      <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>

二、基础连接步骤 

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​

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

四、执行SQL操作

1. 查询数据示例
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(推荐)
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 + "条记录");
}

五、事务管理

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. ​时区问题​

    // 在连接URL中添加时区参数 ?serverTimezone=Asia/Shanghai

七、连接池推荐

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

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

HikariCP简单示例:

HikariConfig config = new HikariConfig();
config.setJdbcUrl(URL);
config.setUsername(USER);
config.setPassword(PASSWORD);try (HikariDataSource ds = new HikariDataSource(config);Connection conn = ds.getConnection()) {// 使用连接...
}

http://www.lryc.cn/news/2379432.html

相关文章:

  • QT+Opencv 卡尺工具找直线
  • GraphPad Prism简介、安装与工作界面
  • 当AI自我纠错:一个简单的“Wait“提示如何让模型思考更深、推理更强
  • esp32课设记录(一)按键的短按、长按与双击
  • 使用AI 生成PPT 最佳实践方案对比
  • React19源码系列之 API(react-dom)
  • supervisorctl守护进程
  • 下载的旧版的jenkins,为什么没有旧版的插件
  • 【ALINX 实战笔记】FPGA 大神 Adam Taylor 使用 ChipScope 调试 AMD Versal 设计
  • 出现 Uncaught ReferenceError: process is not defined 错误
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表
  • 【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性
  • 零基础学Java——第十一章:实战项目 - 微服务入门
  • docker 学习记录
  • 自媒体工作室如何矩阵?自媒体矩阵养号策略
  • 南京邮电大学金工实习答案
  • 【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率
  • 世界模型+大模型+自动驾驶 论文小汇总
  • 物联网设备远程管理:基于代理IP的安全固件更新通道方案
  • MyBatis 延迟加载与缓存
  • C++函数三剑客:缺省参数·函数重载·引用的高效编程指南
  • ORACLE 11.2.0.4 数据库磁盘空间爆满导致GAP产生
  • 面试题总结一
  • SWUST数据结构下半期实验练习题
  • 专业版降重指南:如何用Python批量替换同义词?自动化操作不香嘛?
  • 一:操作系统之操作系统结构
  • 机器学习 Day18 Support Vector Machine ——最优美的机器学习算法
  • IIS入门指南:原理、部署与实战
  • Linux运维——Shell脚本读取配置文件
  • 答题pk小程序道具卡的获取与应用