【数据库】学生管理系统

简介: 【数据库】学生管理系统

1. 项目架构

2. 系统分析

2.1. 数据库

2.1.1. 表student

2.2 java端

2.2.1 JBDC

2.2.1.1JDBC连接
package com.situ.student.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
public class JDBCUtil {
  private static ResourceBundle rb = ResourceBundle.getBundle("com.situ.student.util.JDBC");
  private static String cLassName = rb.getString("driver");
  private static String url = rb.getString("url");
  private static String user = rb.getString("user");
  private static String password = rb.getString("pass");
  // 1- 加载驱动
  static {
    try {
      Class.forName(cLassName);
    } catch (Exception e) {
      e.getCause();
    }
  }
  // 2- 获得链接
  public static Connection getConnection() throws SQLException {
    return DriverManager.getConnection(url, user, password);
  }
  public static void close(Connection conn, Statement st, ResultSet rs) {
    try {
      if (rs != null) {
        rs.close();
        rs = null;
      }
      if (st != null) {
        st.close();
        st = null;
      }
      if (conn != null) {
        conn.close();
        conn = null;
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  public static void close(Connection conn, Statement st) {
    close(conn, st, null);
  }
  public static void main(String[] args) throws SQLException {
    // 加载驱动 + 获得链接
    Connection con = JDBCUtil.getConnection();
    System.out.println(con);
    JDBCUtil.close(con, null); // 关闭的是插入的
  }
  private JDBCUtil() {
  }
}
2.2.1.1JDBC配置文件
pass=123456
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3308/demo01?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Hongkong&allowPublicKeyRetrieval=true

2.2.2 student包

2.2.2.1 Model
package com.situ.student.student.model;
public class StudentModel {
  private String id;
  private String name;
  private String age;
  private String profession;
  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 getAge() {
    return age;
  }
  public void setAge(String age) {
    this.age = age;
  }
  public String getProfession() {
    return profession;
  }
  public void setProfession(String profession) {
    this.profession = profession;
  }
  @Override
  public String toString() {
    return "StudentModel [id=" + id + ", name=" + name + ", age=" + age + ", profession=" + profession + "]";
  }
}
2.2.2.2 Dao
package com.situ.student.student.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.situ.student.student.model.StudentModel;
import com.situ.student.util.JDBCUtil;
public class StudentDao {
  private Connection connection = null;
  private PreparedStatement ps = null;
  // 增加
  public String insert(StudentModel model) {
    String sql = "insert into student(s_id, name, age, profession) value(?,?,?,?)";
    try {
      connection = JDBCUtil.getConnection(); // 获得链接
      ps = connection.prepareStatement(sql); // 执行SQL
      ps.setString(1, model.getId()); // 填充问号
      ps.setString(2, model.getName());
      ps.setString(3, model.getAge());
      ps.setString(4, model.getProfession());
      int res = ps.executeUpdate(); // 返回改变的记录条数
      return res + "";
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      JDBCUtil.close(connection, ps);
    }
    return -1 + "";
  }
  // 删除
  public String delete(StudentModel model) {
    String sql = "delete from student where  s_id = ?";
    try {
      connection = JDBCUtil.getConnection();
      ps = connection.prepareStatement(sql);
      ps.setString(1, model.getId());
      int res = ps.executeUpdate();
      return res + "";
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      JDBCUtil.close(connection, ps);
    }
    return -1 + "";
  }
  // 修改
  public String update(StudentModel model) {
    String sql = "update student set profession = ? where s_id = ?";
    try {
      connection = JDBCUtil.getConnection();
      ps = connection.prepareStatement(sql);
      ps.setString(1, model.getProfession());
      ps.setString(2, model.getId());
      int res = ps.executeUpdate();
      return res + "";
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      JDBCUtil.close(connection, ps);
    }
    return -1 + "";
  }
  // 查询
  public List<StudentModel> select(StudentModel model) {
    StringBuffer sql = new StringBuffer("select s_id, name, age, profession from student where 1 = 1");
    List<Object> list = new ArrayList<Object>();
    list = where(sql, model);
    List<StudentModel> list2 = new ArrayList<StudentModel>();
    ResultSet set = null;
    try {
      connection = JDBCUtil.getConnection();
      ps = connection.prepareStatement(sql.toString());
      for (int i = 0; i < list.size(); i++) {
        ps.setObject(i + 1, list.get(i));
      }
      set = ps.executeQuery();
      while (set.next()) {
        StudentModel model1 = new StudentModel();
        model1.setId(set.getString("s_id"));
        model1.setName(set.getString("name"));
        model1.setAge(set.getString("age"));
        model1.setProfession(set.getString("profession"));
        list2.add(model1);
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      JDBCUtil.close(connection, ps);
    }
    return list2;
  }
  public List<Object> where(StringBuffer sql, StudentModel model) {
    String s_id = model.getId();
    List<Object> list = new ArrayList<Object>();
    if (s_id != null && !s_id.trim().isEmpty()) {
      sql.append(" and s_id=?");
      list.add(s_id);
    }
    String name = model.getName();
    if (name != null && !name.trim().isEmpty()) {
      sql.append(" and name = ?");
      list.add(name);
    }
    String age = model.getAge();
    if (age != null && !age.trim().isEmpty()) {
      sql.append(" and age = ?");
      list.add(age);
    }
    String profession = model.getProfession();
    if (profession != null && !profession.trim().isEmpty()) {
      sql.append(" and profession = ?");
      list.add(profession);
    }
    return list;
  }
}
2.2.2.3 Service
package com.situ.student.student.service;
import java.util.ArrayList;
import java.util.List;
import com.situ.student.student.dao.StudentDao;
import com.situ.student.student.model.StudentModel;
public class StudentService {
  private StudentDao dao = new StudentDao();
  public String insert(StudentModel model) {
    StudentModel model2 = new StudentModel();
    model2.setId(model.getId());
    List<StudentModel> list = new ArrayList<StudentModel>();
    list = dao.select(model);
    if (list == null || list.isEmpty()) {
      dao.insert(model);
      return "插入成功!";
    }
    return "已经存在!";
  }
  public String delete(StudentModel model) {
    return dao.delete(model);
  }
  public String update(StudentModel model) {
    return dao.update(model);
  }
  public List<StudentModel> selectList(StudentModel model) {
    return dao.select(model);
  }
  public StudentModel selcetModel(StudentModel model) {
    StudentModel model2 = new StudentModel();
    model2.setId(model.getId());
    List<StudentModel> list = new ArrayList<StudentModel>();
    list = dao.select(model);
    if (list == null || list.isEmpty()) {
      return null;
    }
    return list.get(0);
  }
}

2.2.2 Test

package com.situ.student.student.studenttest;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.situ.student.student.model.StudentModel;
import com.situ.student.student.service.StudentService;
public class StudentTset {
  private Scanner scanner = new Scanner(System.in);
  boolean p = true;
  private StudentService service = new StudentService();
  public static void main(String[] args) {
    StudentTset test = new StudentTset();
    test.start();
  }
  public void start() {
    while (p) {
      System.out.println("1. 添加学生信息");
      System.out.println("2. 按学生姓名查询学生信息");
      System.out.println("3. 修改学生的专业(转专业)");
      System.out.println("4. 按专业查询学生信息");
      System.out.println("5. 查询所有人的信息");
      System.out.println("6. 退出");
      System.out.println("请输入你要");
      String string = scanner.nextLine();
      sart_1(string);
    }
  }
  public void sart_1(String string) {
    if (string.equals("1")) {
      addStudent();
    } else if (string.equals("2")) {
      queryNameStudent();
    } else if (string.equals("3")) {
      setStudentProfessional();
    } else if (string.equals("4")) {
      queryProfessionalStudent();
    } else if (string.equals("5")) {
      querySumInformation();
    } else if (string.equals("6")) {
      p = false;
      System.out.println("已为你退出系统!");
    } else {
      System.out.println("你的输入有误!");
    }
  }
  public void addStudent() {
    StudentModel model = new StudentModel();
    System.out.println("请输入学生的编号:");
    String id = scanner.nextLine();
    System.out.println("请输入学生的名字:");
    String name = scanner.nextLine();
    System.out.println("请输入学生的年龄:");
    String age = scanner.nextLine();
    System.out.println("请输入学生的专业:");
    String profession = scanner.nextLine();
    model.setId(id);
    model.setName(name);
    model.setAge(age);
    model.setProfession(profession);
    System.out.println(service.insert(model));
  }
  // 按名字进行查询
  public void queryNameStudent() {
    System.out.println("请输入你要查询的名字:");
    String name = scanner.nextLine();
    StudentModel model = new StudentModel();
    model.setName(name);
    List<StudentModel> list = new ArrayList<StudentModel>();
    list = service.selectList(model);
    for (int i = 0; i < list.size(); i++) {
      System.out.println(list.get(i));
    }
  }
  public void querySumInformation() {
    StudentModel model = new StudentModel();
    List<StudentModel> list = new ArrayList<StudentModel>();
    list = service.selectList(model);
    for (int i = 0; i < list.size(); i++) {
      System.out.println(list.get(i));
    }
  }
  public void setStudentProfessional() {
    StudentModel model = new StudentModel();
    System.out.println("请输入你要修改的学生编号:");
    String id = scanner.nextLine();
    model.setId(id);
    System.out.println("请输入你要转的专业:");
    String profession = scanner.nextLine();
    model.setProfession(profession);
    service.update(model);
  }
  public void queryProfessionalStudent() {
    System.out.println("请输入你要查询的专业:");
    StudentModel model = new StudentModel();
    String profession = scanner.nextLine();
    model.setProfession(profession);
    List<StudentModel> list = new ArrayList<StudentModel>();
    list = service.selectList(model);
    for (int i = 0; i < list.size(); i++) {
      System.out.println(list.get(i));
    }
  }
}


相关文章
|
4月前
|
关系型数据库 OLAP 分布式数据库
核心系统转型问题之Gartner分析师对阿里云数据库的评价是啥样的
核心系统转型问题之Gartner分析师对阿里云数据库的评价是啥样的
|
4月前
|
Cloud Native 数据管理 数据挖掘
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
32 1
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
115 3
|
1月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
39 1
|
2月前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
148 3
|
2月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
43 2
|
3月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
3月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
2月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
132 2