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

纯手工(不基于maven的pom.xml、Web容器)连接MySQL数据库的详细过程(Java Web学习笔记)

1 引言

最近读一些Java Web开发类的书籍时,发现书中的连接数据库的过程缺少了一些关键性的过程,这对初学者非常不友好。为此,本文将给出详细的连接MySQL数据库的过程,并且是纯手工,不依赖于pom.xml和Web容器,也不用任何IDE工具,编译和运行全部手写命令,以期对初学者从底层更好地理解整个数据库连接过程有所帮助。

所基于的环境如下:

名称版本
JDK1.8.0_281
MySQL8.0.13

2 连接MySQL数据库详细过程

  1. 建立文件夹结构。建立一个文件夹testDAO,在其中建立如下子文件夹:
    子文件夹结构

  2. 查询本机安装的MySQL版本,如下:
    MySQL版本

  3. 从maven仓库下载针对MySQL连接Java的驱动mysql-connector-java-8.0.13.jar,如下图:
    maven仓库下载地址
    将下载好的mysql-connector-java-8.0.13.jar保存到文件夹lib中。

  4. 编写代码DBConnection.java,放入到src中的com/rob/db文件夹中。代码如下:

package com.rob.db;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DBConnection {private static final String Driver = "com.mysql.cj.jdbc.Driver";private static final String URL = "jdbc:mysql://localhost:3306/testseb";private static final String USER = "root";private static final String PASSWORD = "123456";private Connection conn = null;public DBConnection() throws Exception {try {Class.forName(Driver);this.conn = DriverManager.getConnection(URL, USER, PASSWORD);} catch(Exception e) {throw e;}}public Connection getConnection(){return this.conn;}public void close() throws Exception {if (this.conn != null){try {this.conn.close();} catch (Exception e) {throw e;}}}// unit test public static void main(String[] args) throws Exception {DBConnection dbconn = new DBConnection();System.out.println("连接成功");try {dbconn.close();} catch (SQLException e) {e.printStackTrace();}}
}
  1. 编译,用如下命令:javac -classpath lib\mysql-connector-java-8.0.13.jar -d classes src\com\rob\db\DBConnection.java。如下图:
    在这里插入图片描述
  2. 运行。注意运行时也必须指定jar包所在的路径。命令为:java -classpath classes;lib/mysql-connector-java-8.0.13.jar;. com/rob/db/DBConnection。如下图:
    连接成功
    从上面可以看出,已经连接成功。之所以抛出异常,是因为MySQL中还没创建数据库testseb,这反而说明了连接数据库已经成功。

3 总结

本文讲解了Java中手工连接MySQL数据库的详细过程,从建立文件夹结构、下载jar驱动、编写代码到编译、运行,对于初学者从底层了解整个过程非常有帮助,而不被各式的IDE工具所屏蔽底层的编译运行细节。这会让我们后续在使用各种IDE工具时更加从容。

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

相关文章:

  • thingsboard通过mqtt设备连接及数据交互---记录一次问题--1883端口没开,到服务器控制面板中打开安全组1883端口
  • 联邦学习中的LoRA:FedLoRA
  • PyTorch reshape函数介绍
  • Linux内核 -- 邮箱子系统之`mbox_controller` 的 `txdone_irq` 用法
  • Linux/Ubuntu/银河麒麟 arm64 飞腾FT2000 下使用 arm64版本 linuxdeployqt 打包Qt程序
  • Excel | 空格分隔的行怎么导入excel?
  • 如何将某两个提交去掉父提交的合并
  • Windows下安装最新版的OpenSSL,并解决OpenSSL不是当前版本的问题,或者安装不正确的问题
  • Django 社团管理系统的设计与实现
  • android compose 串口通信
  • Cursor无限续杯——解决Too many free trials.
  • 网络传输层TCP协议
  • 我的前端面试笔记(React篇)
  • Qt 5.14.2 学习记录 —— 팔 QWidget 常用控件(3)
  • HTTP协议和WebSocket协议
  • 校园网断网自检测重链接
  • LAMP搭建
  • Sentinel-5P遥感数据下载及预处理教程【20250105】
  • 手写@MapperScan
  • 【C++】深入理解迭代器(Iterator)
  • 后端Java开发:第十二天
  • 记录一下Coding一直不能clone
  • LLM加速方法,Adapter Tuning和Prompt Tuning的区别及原理举例
  • 【SVN】版本发布快捷操作
  • GitLab 创建项目、删除项目
  • STM32-笔记37-吸烟室管控系统项目
  • VisionPro软件Image Stitch拼接算法
  • 【从零开始入门unity游戏开发之——unity篇09】unity6基础入门——Unity游戏对象和组件的本质、Unity中的反射机制
  • 【Linux】深入理解文件系统(超详细)
  • MoEs and Transformers 笔记