学生信息管理系统实训第一天项目

该博客介绍学生信息管理系统开发步骤。先绘制思维导图,接着创建 MySQL 数据库及多个表并插入数据。然后在 IntelliJ IDEA 新建项目,创建包并添加文档、图片和数据库连接 jar 包。之后创建实体类、数据库连接管理类,最后创建数据访问接口并测试连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.先将学生信息管理系统的思维导图用百度脑图绘制出来学生信息系统思维导图
2.创建MySQL数据库以及表
(1)创建student数据库
在这里插入图片描述
(2)创建student表
在这里插入图片描述
(3)创建user表
在这里插入图片描述
(4)创建college表
在这里插入图片描述
(5)创建status表
在这里插入图片描述
(6)向student表中插入数据
在这里插入图片描述
(7)向user表中插入数据
在这里插入图片描述
(8)向college表中插入数据
在这里插入图片描述
(9)向status表中插入数据
在这里插入图片描述
3.新创建IntelliJ IDEA项目
在这里插入图片描述
4.新建项目中创建包
在这里插入图片描述
(1)向help包中加入帮助文档
在这里插入图片描述
(2)向images包中导入图片
在这里插入图片描述
(3)向lib包添加连接MySQL数据库的jar包
在这里插入图片描述
并作为库添加到项目里(Add as Library…)
在这里插入图片描述
5.创建实体类
在这里插入图片描述
(1)学校实体类College

package net.wj.student.bean;
import java.util.Date;
/**
 * 功能:学校实体
 * 作者:王洁
 * 日期:2019年6月17日
 */
public class College {
    /**
     * 学校标识符
     */
    private int id;

    /**
     * 学校名称
     */
    private String name;

    /**
     * 校长
     */
    private String president;

    /**
     * 建校时间
     */
    private Date starttime;

    /**
     * 联系方式
     */
    private String phone;

    /**
     * 电子邮件
     */
    private String email;

    /**
     * 通信地址
     */
    private String address;

    /**
     * 学校简介
     */
    private String profile;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPresident() {
        return president;
    }

    public void setPresident(String president) {
        this.president = president;
    }

    public Date getStarttime() {
        return starttime;
    }

    public void setStarttime(Date starttime) {
        this.starttime = starttime;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getProfile() {
        return profile;
    }

    public void setProfile(String profile) {
        this.profile = profile;
    }

    @Override
    public String toString() {
        return "College{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", president='" + president + '\'' +
                ", starttime=" + starttime +
                ", phone='" + phone + '\'' +
                ", email='" + email + '\'' +
                ", address='" + address + '\'' +
                ", profile='" + profile + '\'' +
                '}';
    }
}

(2)状态实体类Status

package net.wj.student.bean;

/**
 * 功能:状态实体
 * 作者:王洁
 * 日期:2019年6月17日
 */
public class Status {
    private int id;
    private String college;
    private String version;
    private String author;
    private String telephone;
    private String email;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCollege() {
        return college;
    }

    public void setCollege(String college) {
        this.college = college;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "Status{" +
                "id=" + id +
                ", college='" + college + '\'' +
                ", version='" + version + '\'' +
                ", author='" + author + '\'' +
                ", telephone='" + telephone + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

(3)学生实体类Student

package net.wj.student.bean;

/**
 * 功能:学生实体
 * 作者:王洁
 * 日期:2019年6月17日
 */

public class Student {
    private String id;
    private String name;
    private String sex;
    private int age;
    private String department;
    private String clazz;
    private String telephone;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getClazz() {
        return clazz;
    }

    public void setClazz(String clazz) {
        this.clazz = clazz;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                ", department='" + department + '\'' +
                ", clazz='" + clazz + '\'' +
                ", telephone='" + telephone + '\'' +
                '}';
    }
}

(4)用户实体类User

package net.wj.student.bean;

/**
 * 功能:用户实体
 * 作者:王洁
 * 日期:2019年6月17日
 */

public class User {
    private int id;
    private String username;
    private String password;
    private String telephone;
    private String registerTime;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(String registerTime) {
        this.registerTime = registerTime;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", telephone='" + telephone + '\'' +
                ", registerTime='" + registerTime + '\'' +
                '}';
    }
}

6.创建包dbutil并创建数据库连接管理类ConnectionManager
在这里插入图片描述

package net.wj.student.dbutil;

import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 功能:数据库连接管理类
 * 作者:王洁
 * 日期:2019年6月17日
 */

public class ConnectionManger {
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/student";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "1";

    private ConnectionManger(){
    }
    /**
     * 获得数据库连接
     *
     * @return  数据库连接对象
     */

    public static Connection getConnection(){
        //定义数据库连接
        Connection conn = null;

        try {
            Class.forName(DRIVER);
            conn = DriverManager.getConnection(URL +
                    "?useUnicode=true&characterEncoding=UTF8",USERNAME,PASSWORD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;

    }
    /**
     * 关闭数据库
     *
     * @param conn
     */
    public static void closeConnection(Connection conn){
        //判断数据库连接是否为空
        if(conn != null){
            //判断数据库连接是否关闭
            try {
                if (!conn.isClosed()){
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 测试数据库连接是否成功
     *
     * @param args
     */
    public static void main(String[] args) {
        //获得数据库连接
        Connection conn = getConnection();
        //判断是否连接成功
        if(conn != null){
            JOptionPane.showMessageDialog(null,"恭喜,连接数据库成功!");
        } else {
            JOptionPane.showMessageDialog(null,"遗憾,数据库连接失败!");
        }

        //关闭数据库连接
        closeConnection(conn);
    }
}

运行程序,测试数据库连接是否成功:
在这里插入图片描述

7.新建包dao并创建数据访问接口
在这里插入图片描述
(1)学校数据访问接口CollegeDao
在这里插入图片描述
(2)状态数据访问接口StatusDao
在这里插入图片描述
(3)学生数据访问接口StudentDao
在这里插入图片描述
(4)用户数据访问接口UserDao

### 学生信息管理系统 Java 实训 日志 示例 700字 实训第二天的主要任务是基于Java语言开发学生信息管理系统的初步框架,并完成数据库连接及基本功能的实现。以下是实训日志的具体内容: #### 1. 系统设计与架构分析 在学生信息管理系统的开发过程中,系统采用了分层架构设计,具体分为前端界面、后端业务逻辑和数据库交互三个部分[^1]。前端界面通过Swing或JSP技术实现用户交互功能,而后端则利用Spring框架进行业务逻辑处理,同时使用MyBatis作为ORM工具完成数据持久化操作。这种架构分离了前端与后端的功能,提高了系统的可扩展性和维护性。 #### 2. 数据库连接与配置 为了实现学生息的存储与查询,选择了MySQL作为数据库管理系统。通过编写`DataSourceConfig.java`文件完成了数据库连接池的配置。代码示例如下: ```java @Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/student_management?useSSL=false&serverTimezone=UTC"); dataSource.setUsername("root"); dataSource.setPassword("password"); return dataSource; } } ``` 上述代码实现了数据库连接的基本配置,确保系统能够正确访问MySQL数据库[^2]。 #### 3. 基本功能实现 在这一天的工作中,完成了学生息的增删改查功能。具体实现方式如下: - **新增学生息**:通过创建`StudentService`类中的`addStudent`方法实现。 - **删除学生息**:通过`deleteStudent`方法实现,该方法接收学生ID作为参数并执行删除操作。 - **修改学生息**:通过`updateStudent`方法实现,允许用户更新学生的姓名、性别、专业等字段。 - **查询学生息**:通过`getStudentById`方法实现,支持根据学生ID查询详细息。 以下为`StudentService`类的部分代码示例: ```java @Service public class StudentService { @Autowired private StudentMapper studentMapper; public void addStudent(Student student) { studentMapper.insertStudent(student); } public void deleteStudent(int id) { studentMapper.deleteStudent(id); } public void updateStudent(Student student) { studentMapper.updateStudent(student); } public Student getStudentById(int id) { return studentMapper.selectStudentById(id); } } ``` #### 4. 异常处理与测试 在开发过程中,特别注重异常处理机制的设计。通过捕获SQL异常并返回友好的错误提示,提升了系统的稳定性和用户体验。此外,还编写了单元测试用例以验证各功能模块的正确性。例如,使用JUnit框架对`StudentService`类进行了测试: ```java @Test public void testAddStudent() { Student student = new Student(); student.setName("张三"); student.setGender("男"); student.setMajor("计算机科学"); studentService.addStudent(student); assertNotNull(studentService.getStudentById(student.getId())); } ``` #### 5. 总结与反思 通过今天的实训,进一步熟悉了Java在实际项目中的应用,尤其是Spring框架与MyBatis的结合使用。同时,也意识到数据库设计的重要性以及异常处理对系统稳定性的影响。接下来的工作将集中在多角色权限控制和系统性能优化方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值