Java-学生管理系统

本文档详细介绍了使用Java进行学生管理系统开发的过程,包括创建学校、状态、学生和用户实体类,建立数据库连接管理,设计数据访问接口及其实现,以及SQLHelper相关操作。
摘要由CSDN通过智能技术生成

创建学校实体类College

在这里插入图片描述

package c02.s02.p02.bean;

import java.sql.ResultSet;
import java.sql.Time;
import java.util.Date;

/**
 * 功能:
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public class College {
   
    private int id;
    private String username;
    private String password;
    private String telephone;
    private Time register_time;
    private String president;
    private String name;
    private ResultSet startTime;
    private String email;

    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 Time getRegister_time() {
    return register_time;    }

    public void setRegister_time(Time register_time) {
    this.register_time = register_time; }

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


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

    public String getPresident() {
   
        return president;
    }

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

    public void setStartTime(Date start_time) {
   

    }

    public void setEmail(String email) {
   

    }

    public void setAddress(String address) {
   

    }

    public void setProfile(String profile) {
   

    }

    public String getName() {
   
        return null;
    }

    public ResultSet getStartTime() {
   
        return startTime;
    }

    public String getEmail() {
   
        return email;
    }

    public String getProfile() {
   
        return null;
    }
}

创建状态实体类Status

在这里插入图片描述

package c02.s02.p02.bean;

/**
 * 功能:
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public class Status {
   
    private int id;
    private String college;
    private String version;
    private String author;
    private String telephone;
    private String address;
    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 username) {
   
        this.college = college;
    }

    public String getVersion() {
   
        return version;
    }

    public void setVersion(String password) {
   
        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 getAdress() {
   
        return address;
    }

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

    public String getEmail() {
   
        return email;
    }

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

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


    public String getAddress() {
   
        return null;
    }
}

创建学生实体类Student

在这里插入图片描述

package c02.s02.p02.bean;

/**
 * 功能:
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public class Student {
   
    private int id;
    private String name;
    private String sex;
    private int age;
    private String department;
    private String t_class ;
    private String telephone;

    public Student() {
   

    }

    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 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 getT_class() {
    return t_class ; }

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

    public String getTelephone() {
    return telephone ; }

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

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

创建用户实体类User

在这里插入图片描述

package c02.s02.p02.bean;

import java.util.Date;

/**
 * 功能:用户实体类
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public class User {
   
    private int id;
    private String username;
    private String password;
    private String telephone;
    private Date 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 Date getRegisterTime() {
   
        return registerTime;
    }

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

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

创建数据库连接管理类

在这里插入图片描述

package c02.s02.p02.dbutils;

import com.mysql.jdbc.Connection;

import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 功能:数据库连接管理类
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public class ConnectionManager {
   
    // 数据库连接属性
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/student?useSSL=false";
    private static final String USER = "root";
    private static final String PASSWORD = "qian0717."; // 改成自己数据库的密码

    /**
     * 私有化构造方法,拒绝实例化
     */
    private ConnectionManager() {
   
    }

    /**
     * 获取数据库连接静态方法
     *
     * @return 数据库连接
     */
    public static Connection getConnection() {
   
        // 定义数据库连接
        Connection conn = null;

        try {
   
            // 安装数据库驱动
            Class.forName(DRIVER);
            // 获取数据库连接
            conn = (Connection) DriverManager.getConnection(URL, USER, PASSWORD);
            // 提示用户数据库连接成功
            System.out.println("提示:数据库连接成功~");
        } catch (ClassNotFoundException e) {
   
            System.err.println("异常:数据库驱动程序未找到!");
        } catch (SQLException e) {
   
            System.err.println("异常:数据库连接失败!");
        }

        // 返回数据库连接
        return conn;
    }

    /**
     * 关闭数据库连接静态方法
     *
     * @param conn
     */
    public static void closeConnection(Connection conn) {
   
        // 判断连接是否为空
        if (conn != null) {
   
            try {
   
                // 判断连接是否关闭
                if (!conn.isClosed()) {
   
                    // 关闭数据库连接,释放资源
                    conn.close();
                    // 提示用户
                    System.out.println("提示:数据库连接关闭~");
                }
            } catch (SQLException e) {
   
                System.err.println(e.getMessage());
            }
        }
    }

    /**
     * 主方法测试数据库连接
     *
     * @param args
     */
    public static void main(String[] args) {
   
        // 获取数据库连接
        Connection conn = getConnection();
        // 关闭数据库连接
        closeConnection(conn);
    }
}

创建数据访问接口

在这里插入图片描述

package c02.s02.p02.dao;

import c02.s02.p02.bean.College;

/**
 * 功能:创建学校数据访问接口
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public interface CollegeDao {
   
    College findById(int id);
    int update(College college);
}

package c02.s02.p02.dao;

import c02.s02.p02.bean.Status;

/**
 * 功能:创建状态数据访问接口
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public interface StatusDao {
   
    Status findById(int id);
    int update(Status status);
}

package c02.s02.p02.dao;

import c02.s02.p02.bean.Student;

import java.util.List;
import java.util.Vector;

/**
 * 功能:创建学生数据访问接口
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public interface StudentDao {
   
    int insert(Student student);
    int deleteById(String id);
    int deleteByClass(String clazz);
    int deleteByDepartment(String department);
    int update(Student student);
    Student findById(String id);
    List<Student> findByName(String name);
    List<Student> findByClass(String clazz);
    List<Student> findByDepartment(String department);
    List<Student> findAll();
    Vector findRowsBySex();
    Vector findRowsByClass();
    Vector findRowsByDepartment();
}

package c02.s02.p02.dao;

import c02.s02.p02.bean.User;

import java.util.List;

/**
 * 功能:用户数据访问接口
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public interface UserDao {
   
    int insert(User user);
    int delete(int id);
    int update(User user);
    User findById(int id);
    List<User> findAll();
    User login(String username, String password);
}

创建数据访问接口实现类

package c02.s02.p02.dao.impl;

import c02.s02.p02.bean.College;
import c02.s02.p02.dao.CollegeDao;
import c02.s02.p02.dbutils.ConnectionManager;
import com.mysql.jdbc.Connection;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;

import static c02.s02.p02.dbutils.ConnectionManager.getConnection;

/**
 * 功能:
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public class CollegeDaoImpl implements CollegeDao {
   
    @Override
    public College findById(int id) {
   

        College college = null;

        Connection conn = getConnection();

        String strSQL = "select * from t_college where id = ?";
        try {
   

            PreparedStatement pstmt = conn.prepareStatement(strSQL);
            pstmt.setInt(1, id);
            ResultSet rs = pstmt.executeQuery();

            if (rs.next()) {
   

                college = new College();

                college.setId(rs.getInt("id"));
                college.setName(rs.getString("name"));
                college.setPresident(rs.getString("president"));
                college.setStartTime(rs.getTimestamp("start_time"));
                college.setTelephone(rs.getString("telephone"));
                college.setEmail(rs.getString("email"));
                college.setAddress(rs.getString(" address"));
                college.setProfile(rs.getString("profile"));
            }
            pstmt.close();
            rs.close();

        } catch (SQLException e) {
   
            e.printStackTrace();
        } finally {
   
            ConnectionManager.closeConnection(conn);
        }
        return college;
    }

    @Override
    public int update(College college) {
   
        int count = 0;

        Connection conn = ConnectionManager.getConnection();

        //String strSQL F "update t. .college set name = ?, president F ?, start_time F ?,"
        // + "telephone = ?, email F ?, address = ?, profile=?, whereid- ?"

        String strSQL = "update t_college set name = ?, president = ?, start_time =?,"

                + " telephone E ?, email E ?, address = ?, profile E ? where id = ?";

        try {
   

            PreparedStatement pstmt = conn.prepareStatement(strSQL);
            pstmt.setString(1, college.getName());
            pstmt.setString(2, college.getPresident());
            pstmt.setTimestamp(3, new Timestamp(college.getStartTime().getTime()));
            pstmt.setString(4, college.getTelephone());
            pstmt.setString(5, college.getEmail());
            pstmt.setString(6, college.getAddress());
            pstmt.setString(7, college.getProfile());
            pstmt.setInt(8, college.getId());

            count = pstmt.executeUpdate();
            pstmt.close();

        } catch (SQLException e) {
   
            e.printStackTrace();

        } finally {
   
            ConnectionManager.closeConnection(conn);
        }
        return count;
    }
}
package c02.s02.p02.dao.impl;

import c02.s02.p02.bean.Status;
import c02.s02.p02.dbutils.ConnectionManager;
import com.mysql.jdbc.Connection;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 功能:
 * 作者:hf
 * 日期:2022年 06月 11日
 */
public class StatusDaoImpl {
   
    @Override
    public Status findById(int id) {
   
        // 声明状态对象
        Status status = null;

        // 获取数据库连接对象
        Connection conn = ConnectionManager.getConnection();
        // 定义SQL字符串
        String strSQL = "select * from t_status where id = ?";
        try {
   
            // 创建预备语句对象
            PreparedStatement pstmt = conn.prepareStatement(strSQL);
            // 设置占位符的值
            pstmt.setInt(1, id);
            // 执行SQL查询,返回结果集
            ResultSet rs = pstmt.executeQuery();
            // 判断结果集是否有记录
            if (rs.next()) {
   
                // 实例化状态
                status = new Status();
                // 利用当前记录字段值去设置状态对象的属性
                status.setId(rs.getInt("id"));
                status.setCollege(rs.getString("college"));
                status.setVersion(rs.getString("version"));
                status.setAuthor(rs.getString("author"));
                status.setTelephone(rs.getString("telephone"));
                status.setAddress(rs.getString("address"));
                status.setEmail(rs.getString("email"));
            }
        } catch (SQLException e) {
   
            e.printStackTrace();
        } finally {
   
            ConnectionManager.closeConnection(conn);
        }

        // 返回状态对象
        return status;
    }

    @Override
    public int update(Status status) {
   
        // 定义更新记录数
        int count = 0;

        // 获得数据库连接
        Connection conn = ConnectionManager.getConnection();
        // 定义SQL字符串
        String strSQL = "update t_status set college = ?, version = ?, author = ?,"
                + " telephone = ?, address = ?, email = ? where id = ?";
        try {
   
            // 创建预备语句对象
            PreparedStatement pstmt = conn.prepareStatement(strSQL);
            // 设置占位符的值
            pstmt.setString(1, status.getCollege());
            pstmt.setString(2, status.getVersion());
            pstmt.setString(3, status.getAuthor());
            pstmt.setString(4, status.getTelephone());
            pstmt.setString(5, status.getAddress());
            pstmt.setString(6, status.getEmail());
            pstmt.setInt(7, status.getId());
            // 执行更新操作,更新记录
            count = pstmt.executeUpdate();
            // 关闭预备语句对象
            pstmt.close();
        } catch (SQLException e) {
   
            e.printStackTrace();
        } finally {
   
            ConnectionManager.closeConnection(conn);
        }

        // 返回更新记录数
        return count;
    }
}

package c02.s02.p02.dao.impl;

import c02.s02.p02.bean.Student;
import c02.s02.p02.dbutils.ConnectionManager;
import com.mysql.jdbc.Connection;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException
1、把6个java文件保存到同一文件夹,例如C:\Student.然后将6个java文件分别编译生成相应的字节码(.class)文件,然后,用java 解释器运行主类:C:\Student\java StudentManager 2、使用jar.exe把一些文件压缩成JAR文件,来发布我们的应用程序。我们可以把本java应用程序中涉及到的类文件(*.class)压缩成一个JAR文件,例如StudentManager.jar。 首先,用记事本编写一个清单文件(Manifestfiles): Manifest-Version: 1.0 Main-class: StudentManager Created-By: 1.2.2(Sun Microsystems Inc.) 例如,清单文件命名为moon.mf,保存到C:\Student。 注意:在编写清单文件时,在“Manifest-Version:”和“1.0”之间,“Main-class:”和“StudentManager”之间,以及在“Created-By:”和“1.2.2(Sun Microsystems Inc.)”之间必须有且只有一个空格。 然后,如下生成JAR文件: C:\Student\jar cvfm StudentManager.jar moon.mf *.class 其中,参数C表示要生成一个新的JAR文件;f表示要生成的JAR文件的名字,m表示文件清单文件的名字,v表示生成详细输出到标准输出上。具体运行jar命令请查看 现在就可以将StudentManager.jar拷贝到任何一个安装了java运行环境(jdk版本号须高于1.2.2)的计算机上,只要鼠标双击StudentManager.jar文件就可以运行该java应用程序了。 注意在装了WinRAR解压缩软件的机子上可能不能运行,因此,在发布本系统时,还应该建立一个有如下内容的.bat文件(StudentManager.bat),用记事本编写: javaw -jar StudentManager.jar 保存即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值