课次21:MySQL安装、建表、JDBC连接与注册功能
一、教学目标
安装MySQL,创建数据库和user表。
使用JDBC连接数据库,实现用户注册(PreparedStatement防止SQL注入)。
二、核心知识点(简要)
JDBC:Java连接数据库的标准API。
PreparedStatement:预编译SQL,防止注入,使用?占位符。
DriverManager:获取Connection对象。
executeUpdate():执行INSERT/UPDATE/DELETE,返回影响行数。
三、操作步骤
1.创建数据库和表
在SQLyog左侧空白位置右键,新建数据库,名字叫:weitoutiao
image-20260615094017571
image-20260615094055646
再新建查询,输入以下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
);
image-20260612212926734
image-20260612213049055
image-20260612213258227
2.用IDEA创建maven工程
image-20260612165125727
-
创建Maven项目,添加MySQL驱动
在pom.xml文件的标签之上,添加如下依赖:
mysql
mysql-connector-java
8.0.33
添加完之后,点击maven的刷新(弹窗按钮也可),就不红了
image-20260612165931298
4.编写DBUtil(连接数据库工具类)
右键java文件夹,创建java类
image-20260612170201884
输入:com.weitoutiao.util.DBUtil, 回车
image-20260612170820221
编写如下代码:
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类
image-20260612200653949
编写如下代码:
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类
image-20260612201526907
编写如下代码:
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类
image-20260612202149699
编写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.运行测试
运行
image-20260612202421614
控制台打印:注册成功
image-20260612202514293
通过SQLyou查看数据库表中数据已经对应增加
image-20260612202643199
课次21:MySQL安装、建表、JDBC连接与注册功能
一、教学目标
二、核心知识点(简要)
三、操作步骤
1.创建数据库和表
2.用IDEA创建maven工程
3. 创建Maven项目,添加MySQL驱动
4.编写DBUtil(连接数据库工具类)
5. 编写User实体类
6. 编写UserDAO(数据访问层)实现注册
7. 编写Main测试
8.运行测试
EOF
浙公网安备 33010602011771号