MySQL安装、建表、JDBC连接与注册功能
一、核心知识点
- JDBC:Java连接数据库的标准API。
- PreparedStatement:预编译SQL,防止注入,使用
?占位符。- DriverManager:获取
Connection对象。- executeUpdate():执行INSERT/UPDATE/DELETE,返回影响行数。
二、操作步骤
1.创建数据库和表
- 在
SQLyog左侧空白位置右键,新建数据库,名字叫:weitoutiao


再新建查询,输入以下SQL脚本
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 指定字符集为 utf8mb4 USE weitoutiao;-- 进入微头条这个数据库 CREATE TABLE `user` (-- 创建user表格存放用户信息 `id` INT PRIMARY KEY AUTO_INCREMENT,-- id列:用户的唯一编号。INT是整数类型;PRIMARY KEY表示它是主键(相当于身份证号,绝对不能重复);自增,不用手动填编号 `username` VARCHAR(50) NOT NULL UNIQUE,-- 字符不超过50;不能为空;不能重复 `password` VARCHAR(100) NOT NULL, `role` VARCHAR(20) DEFAULT 'user',-- 默认是user `news_count` INT DEFAULT 0, `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP );



2.用IDEA创建maven工程

3. 创建Maven项目,添加MySQL驱动
在
pom.xml文件的</project>标签之上,添加如下依赖:<dependencies><!-- 【依赖管理区】这里用来声明当前项目需要用到哪些第三方工具包 --> <dependency><!-- 声明一个具体的依赖项--> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId><!--JDBC驱动,连接数据库--> <version>8.0.33</version> </dependency> </dependencies>添加完之后,点击maven的刷新,就不红了

4.编写
DBUtil
- 右键java文件夹,创建java类

- 输入:
com.weitoutiao.util.DBUtil, 回车

编写如下代码:
package com.weitoutiao.util;// 声明这个工具类所在的包路径 // 【导入依赖】引入 JDBC 操作数据库必须的核心接口和类 import java.sql.Connection;// Connection 接口:代表与数据库的物理连接通道 import java.sql.DriverManager;// DriverManager 类:用于管理数据库驱动并获取连接 import java.sql.SQLException;// SQLException 类:处理数据库操作中可能出现的异常 public class DBUtil {//【创建工具类】封装数据库操作的辅助类 private static final String URL = "jdbc:mysql://localhost:3306/weitoutiao?useSSL=false&serverTimezone=Asia/Shanghai"; // 【配置连接参数】使用 private static final 修饰,表示这些是全局唯一且不可修改的常量 private static final String USER = "root";//登录数据库的用户名 private static final String PASSWORD = "root";//登录数据库的密码 static { //【静态代码块】当这个类被加载到内存时,里面的代码只会执行一次 try { Class.forName("com.mysql.cj.jdbc.Driver");// 核心作用:加载并注册 MySQL 8.0+ 版本的驱动程序 } catch (ClassNotFoundException e) {// 如果找不到这个驱动类,说明项目里没有引入 mysql-connector-java 依赖,打印错误信息 e.printStackTrace(); } } public static Connection getConnection() throws SQLException { //【获取连接方法】提供一个公开的静态方法,供外部业务代码(如 UserDao)直接调用 return DriverManager.getConnection(URL, USER, PASSWORD);// 利用上面配置好的三要素(URL、账号、密码),向数据库服务器申请一个连接通道并返回 } }5. 编写
User实体类
- 右键java,创建User类

编写如下代码:
package com.weitoutiao.entity;// 【定义包名】声明这个实体类所在的包路径 public class User {// 在实际开发中,它通常与数据库里的 user 表一一对应 private Integer id;// 【主键ID】用户的唯一标识符。使用包装类 Integer private String username; private String password; private String role; private Integer newsCount; // 生成getter/setter(略) }6. 编写
UserDAO(数据访问层)实现注册
- 右键
com.weitoutiao包名,创建UserDA0类

- 编写如下代码:
package com.weitoutiao.dao;// 【定义包名】声明这个类属于 dao (数据访问) 层,专门负责与数据库进行交互 // 【导入依赖】引入用户实体类和刚才写的数据库工具类 import com.weitoutiao.entity.User; import com.weitoutiao.util.DBUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; // 【创建 DAO 类】UserDAO 专门负责处理 user 表的数据增删改查操作 public class UserDAO { // 【注册方法】向数据库中插入一条新的用户记录 public boolean register(String username, String password) { // SQL 语句:使用 ? 作为占位符,这是 PreparedStatement 的标准写法,可以有效防止 SQL 注入攻击 String sql = "INSERT INTO user (username, password) VALUES (?, ?)"; // 【核心逻辑】利用 try-with-resources 语法自动管理资源 // 1. 调用 DBUtil 获取数据库连接 // 2. 将 SQL 语句预编译成 PreparedStatement 对象 try (Connection conn = DBUtil.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { // 【参数赋值】给 SQL 中的两个 ? 占位符分别设置真实的用户名和密码 ps.setString(1, username); ps.setString(2, password); return ps.executeUpdate() > 0; // 【执行并返回结果】executeUpdate() 用于执行 INSERT/UPDATE/DELETE 语句 } catch (SQLException e) { e.printStackTrace(); return false; } } }7. 编写
Main测试- 右键
com.weitoutiao,创建Main类

- 编写Mian中代码:
```
package com.weitoutiao;// 【定义包名】声明这个主类所在的包路径import com.weitoutiao.dao.UserDAO;// 【导入依赖】引入刚才写好的用户数据访问对象(DAO)
public class Main {
public static void main(String[] args) {
UserDAO userDAO = new UserDAO();// 【实例化 DAO】创建一个 UserDAO 对象
boolean success = userDAO.register("testuser", "123456");// 【调用注册方法】去数据库里插入一条测试数据
System.out.println(success ? "注册成功" : "注册失败"); // 如果 success 为 true,输出 "注册成功";否则输出 "注册失败"
}
}
```8.运行测试
- 运行

- 控制台打印:注册成功

- 通过SQLyou查看数据库表中数据已经对应增加


浙公网安备 33010602011771号