学生选课系统java连接mysql
时间: 2025-06-22 09:48:20 浏览: 11
### Java 连接 MySQL 数据库实现学生选课系统
#### 1. 准备工作
要使Java应用程序能够访问MySQL数据库,需要下载并配置JDBC驱动程序。可以通过Maven项目依赖来简化这一过程。
对于Maven项目,在`pom.xml`文件中加入以下依赖项[^1]:
```xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
```
#### 2. 建立数据库连接
建立与MySQL服务器之间的连接通常涉及加载JDBC驱动类、定义URL字符串以及提供用户名和密码等信息。下面是一个简单的例子展示如何创建这样的连接:
```java
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseConnection {
private static final String URL = "jdbc:mysql://localhost:3306/school";
private static final String USER = "root";
private static final String PASSWORD = "";
public Connection getConnection() throws Exception{
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
return DriverManager.getConnection(URL,USER,PASSWORD);
}
}
```
这段代码展示了怎样通过指定的参数获取到一个`Connection`对象实例。
#### 3. 创建表单结构
考虑到这是一个关于学生选课的应用场景,至少应该有两个核心实体:一个是代表学生的表格;另一个则是用来记录所开设课程的信息。这里给出两个基础SQL语句用于建表:
```sql
CREATE TABLE IF NOT EXISTS `student` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(50),
`password` CHAR(64), /* 使用哈希算法加密 */
UNIQUE (`name`)
);
CREATE TABLE IF NOT EXISTS `course_selection`(
id int auto_increment primary key ,
student_id int not null references student(id),
course_name varchar(100) not null,
teacher_name varchar(100),
time datetime default current_timestamp(),
unique (student_id,course_name)
);
```
这些命令会确保每次运行时都存在所需的表,并设置了适当的关系约束以维护数据的一致性和准确性。
#### 4. 执行CRUD操作
一旦建立了稳定的数据库链接并且有了合适的模式之后,就可以编写具体的业务逻辑了。比如向`course_selection`表插入新纪录可以这样做:
```java
String sql = "INSERT INTO course_selection(student_id, course_name,teacher_name) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, studentID); // 学生编号
pstmt.setString(2, courseName); // 科目名称
pstmt.setString(3, teacherName); // 教师姓名
int affectedRows = pstmt.executeUpdate();
if (affectedRows > 0){
System.out.println("成功选择了这门课!");
}else{
System.err.println("选择失败");
}
```
上述片段演示了一个典型的预处理语句执行流程,它有助于防止SQL注入攻击的同时也提高了性能。
阅读全文
相关推荐


















