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

Java + MySQL + Navicat Lite打印输出数据库的表信息到控制台

一、先确认你电脑有这 3 样东西

  1. Navicat Premium Lite(用来操作 MySQL)
  2. MySQL 服务(Navicat 只是可视化工具,必须装 MySQL 数据库服务)
  3. JDK(写 Java 的环境,没有先装 JDK8/JDK17)

第一步:安装 & 启动 MySQL(没有数据库一切白搭)

情况 1:没装 MySQL

去官网下载 MySQL 8.0 社区版,安装时记住:

  • 端口默认:3306
  • 用户名:root
  • 自己设一个密码,记死,后面代码要用

情况 2:装了但没启动

Windows:此电脑右键管理→服务→找到 MySQL80,右键启动。 启动成功后 Navicat 才能连上数据库。

第二步:Navicat Lite 创建数据库 + 测试表

  1. 打开 Navicat → 连接 → MySQL

    • 连接名:随便填(本地)
    • 主机名:localhost
    • 端口:3306
    • 用户:root
    • 密码:你装 MySQL 时设置的密码 点「测试连接」,显示成功再确定。
  2. 新建数据库 右键连接→新建数据库 数据库名:demo_db字符集:utf8mb4,排序规则 utf8mb4_unicode_ci → 确定

  3. 新建表 + 插入测试数据 双击打开 demo_db → 查询→新建查询,粘贴下面 SQL,点运行:

sql

-- 创建用户表 CREATE TABLE user( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键id', username VARCHAR(30) COMMENT '用户名', age INT COMMENT '年龄' ); -- 添加2条测试数据 INSERT INTO user(username,age) VALUES ('小明',16), ('小红',17);

运行无报错,表就建好了。

第三步:下载 MySQL 驱动 jar 包(Java 连接数据库核心)

Java 本身不认 MySQL,需要驱动:mysql-connector-j-8.0.36.jar

  1. 百度搜索:mysql connector j 8.0 下载
  2. 下载 ZIP 解压,拿出里面.jar文件,放到你的 Java 项目文件夹里。

第四步:新建纯 Java 项目(两种方式,任选其一)

方式 A:记事本 + 命令行(最简单,不用 IDE)

  1. 桌面新建文件夹JdbcTest
  2. 把下载好的mysql-connector-j-8.0.36.jar丢进去
  3. 在文件夹里新建文本文档,改名TestDB.java(注意后缀从.txt 改成.java)

打开 TestDB.java,粘贴完整代码:

java

运行

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class TestDB { public static void main(String[] args) { // ==================== 这里改成你自己的信息 ==================== String url = "jdbc:mysql://localhost:3306/demo_db?useSSL=false&serverTimezone=Asia/Shanghai"; String user = "root"; // MySQL账号 String pwd = "你自己的MySQL密码"; // 替换成你的密码 // ========================================================== Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 1.加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 2.获取连接 conn = DriverManager.getConnection(url, user, pwd); System.out.println("✅ 数据库连接成功!"); // 3.查询user表 stmt = conn.createStatement(); String sql = "select * from user"; rs = stmt.executeQuery(sql); // 打印表结构(字段名、类型) ResultSetMetaData meta = rs.getMetaData(); int colNum = meta.getColumnCount(); System.out.println("\n===== 数据表结构信息 ====="); for(int i=1;i<=colNum;i++){ System.out.println("字段"+i+":"+meta.getColumnName(i)+" | 类型:"+meta.getColumnTypeName(i)); } // 打印表中所有数据 System.out.println("\n===== 表内数据 ====="); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("username"); int age = rs.getInt("age"); System.out.println("id:"+id+" 姓名:"+name+" 年龄:"+age); } } catch (ClassNotFoundException e) { System.out.println("❌ 找不到驱动jar包!"); } catch (SQLException e) { System.out.println("❌ 数据库连接失败,检查密码、库名、MySQL服务是否开启"); e.printStackTrace(); } finally { // 关闭资源 try { if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); System.out.println("\n🔌 连接已关闭"); } catch (SQLException e) { e.printStackTrace(); } } } }

修改代码关键一步

找到String pwd = "你自己的MySQL密码";双引号里替换成你安装 MySQL 设置的密码。

第五步:编译运行(cmd 命令)

  1. 打开 cmd,cd 到你的文件夹 例:

plaintext

cd C:\Users\你的用户名\Desktop\JdbcTest
  1. 编译代码(把 jar 包一起带上)

plaintext

javac -cp mysql-connector-j-8.0.36.jar TestDB.java

执行完文件夹会多出 TestDB.class 文件。

  1. 运行程序

plaintext

java -cp ".;mysql-connector-j-8.0.36.jar" TestDB

成功输出示例

plaintext

✅ 数据库连接成功! ===== 数据表结构信息 ===== 字段1:id | 类型:INT 字段2:username | 类型:VARCHAR 字段3:age | 类型:INT ===== 表内数据 ===== id:1 姓名:小明 年龄:16 id:2 姓名:小红 年龄:17 🔌 连接已关闭
http://www.cnnetsun.cn/news/2998983.html

相关文章:

  • [C++]错误码与Try-catch
  • 手游 BGP 边缘分发部署实战:三网联机延迟优化与 UDP 异常流量过滤配置方案
  • 03. 从零带你学习Linux内核:proc
  • O-RAN中基于Transformer-ESN混合架构的KPI降维与预测优化
  • 基于Hadoop的番茄小说阅读量数据的分析与运用
  • AI开发可观测性实践:构建成本追踪与代码质量监控体系
  • 基于深度强化学习的多目标SAR无人机智能路径规划实战解析
  • OASIS框架:基于分层事件记忆的长视频流式理解技术解析
  • 基于视觉语言与扩散模型的自动驾驶场景生成技术解析
  • Trae:重构编程工作流的操作系统级AI开发工具
  • GitHub学生认证失败真相:不是打不开,而是信源不匹配
  • Codex本地技能调度器:解析.skill.md与配置原理
  • Claude API如何通过MCP协议接入VS Code与Playwright
  • OpenCode 部署指南:Node.js 环境配置与本地 AI 编程运行时搭建
  • C++标准库拷贝与替换算法原理及工程实践
  • 混元2.0深度实测:国产大模型结构化理解与工程稳定性解析
  • 多时序多视角输入加速:IRL输入规整层工程实践
  • Claude Ultracode Agent View:面向工程规模化AI开发的并行调度与可观测性实践
  • Burp Suite实战指南:从代理抓包到漏洞扫描的Web安全测试全流程
  • C语言独立加密库实现:MD5/SHA1/SHA256源码解析与工程实践
  • Java Selenium自动化测试框架搭建:从POM模式到数据驱动的工程实践
  • 微信链接被拦截?三步申诉指南与预防策略
  • 构建UI与API融合的自动化测试框架:工程实践与效能提升指南
  • Web自动化测试工具深度对比:Selenium、Cypress、Playwright与Puppeteer选型指南
  • KT0605无线话筒发射端Keil工程包,含C8051F310驱动、FM调制、LCD按键与I2C/SPI完整实现
  • DVWA文件上传High级绕过:图片马、GIF注释与竞争条件攻击实战
  • 文件格式伪装原理与Apate工具实战:从魔数识别到攻防对抗
  • CVE-2017-17733漏洞复现:从PHP eval()到远程命令执行实战
  • 制作5G新时代科学知识页面
  • 鸿蒙 Next 小众爱好图鉴 App 开发实战:兴趣发现 + 分类系统 + 收藏管理