ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实验四 学生信息管理系统

2021-12-24 20:33:19  阅读:193  来源: 互联网

标签:insert String rs stmt 学生 实验 println 信息管理系统 conn


项目概述:

该项目要求设计一个“学生信息管理系统”,并且该系统有能对学生信息进行增、删、查、改的功能。 

这里我们需要用到MySQL Workbench 8.0 CE 和IntelliJ IDEA Community Edition 2021.2。

项目目标:

根据“学生信息管理系统”的需求,我们有三大目标需要实现。

  1. 首先,我们要在创建的数据库中创建三张表。分别是“学生表”、“课程表”、“教师表”。这三张表要有一定的联系。并且,每张表要有各自的属性。
  2. 其次,我们要定义三种用户,分别是管理员、教师、和学生。管理员权限最大,教师有查看自己所教班级的学生信息,并且能够修改所教课程的学生成绩。学生只能查看自己的学生信息,并且只有在管理员授权的情况下才能修改信息。这就要用到: CREATE USER 用户名 IDENTIFIED BY "密码"; drop user 用户名;等SQL语句。
  3. 最后,还要设计一个图形界面来进行登录、查询等操作。该界面一定要有实现各个功能的按钮,以及显示结果的地方。

具体语句:

可与下面的语句类似

删:

package database;
import java.sql.*;
public class Delete {
	public static void main(String[] args) throws SQLException {
		String dburl = "jdbc:mysql://localhost:3306/student?serverTimezone=Asia/Shanghai";
		Connection conn = null;
		PreparedStatement stmt = null;				
		String delete_stuid = "101";
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn = DriverManager.getConnection(dburl, "root", "1234");
			String deletesql = "delete from stuinfo where stuid = ?";
			stmt = conn.prepareStatement(deletesql);
			stmt.setString(1, delete_stuid);			
			int delete_count = stmt.executeUpdate();
			System.out.println("删除" + delete_count + "条记录");
		}
		catch (SQLException | ClassNotFoundException e) {
			System.out.println("错误:" + e.getMessage());
		}
		finally {				
			stmt.close();
			conn.close();
		}
	}
}

增:

package database;
import java.sql.*;
public class Insert {
    public static void main(String[] args) throws SQLException {
        String dburl = "jdbc:mysql://localhost:3306/student?serverTimezone=Asia/Shanghai";
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        String insert_stuid = "120";
        String insert_stuname = "Jerry";
        double insert_math = 70;
        double insert_english = 65;
        double insert_history = 98;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection(dburl, "root", "1234");
            String sql = "select * from stuinfo  where stuid = ?";
            stmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);
            stmt.setString(1, insert_stuid);
            rs = stmt.executeQuery();
            if (!rs.next()) {
                String insertsql = "insert into stuinfo values(?,?,?,?,?)";
                stmt = conn.prepareStatement(insertsql);
                stmt.setString(1, insert_stuid);
                stmt.setString(2, insert_stuname);
                stmt.setDouble(3, insert_math);
                stmt.setDouble(4, insert_english);
                stmt.setDouble(5, insert_history);
                stmt.executeUpdate();
                System.out.println(insert_stuid + "记录成功插入");
            }
            else {
                System.out.println(insert_stuid + "已在库中");
            }
            System.out.println("-----------------------------------");
        }
        catch (SQLException | ClassNotFoundException e) {
            System.out.println("错误:" + e.getMessage());
        }
        finally {
            rs.close();
            stmt.close();
            conn.close();
            System.out.println("结果集、状态、连接已关闭");
        }
    }
}

查:

package database;

import java.sql.*;

public class Query {
    public static void main(String[] args) throws SQLException {
        // 待操作数据库表的位置
        String dburl = "jdbc:mysql://localhost:3306/student?serverTimezone=Asia/Shanghai";
        Connection conn = null;  // 连接
        PreparedStatement stmt = null;  // 状态
        ResultSet rs = null;  // 结果集
        int count;  // 查询记录条数
        String stuid_key = "100";  // 查询关键字
        double math_key = 0;  // 查询关键字
        try {
            // 装载MySQL数据库驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 建立数据库连接
            conn = DriverManager.getConnection(dburl, "root", "1234");
            // 创建sql语句
            String sql = "select * from stuinfo where stuid > ? and math > ? "
                    + "order by stuid asc";
            // 创建状态
            stmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            stmt.setString(1, stuid_key);  // 填补sql语句参数
            stmt.setDouble(2, math_key);  // 填补sql语句参数
            rs = stmt.executeQuery();  // 执行查询并返回结果集
            while (rs.next()) {  // 结果集记录输出
                System.out.println(rs.getString(1) + " " + rs.getString(2)
                        + " " + rs.getDouble(3) + " " + rs.getDouble(4)
                        + " " + rs.getDouble(5));
            }
            System.out.println("----------------------------------------------");
            rs.previous();  // 结果集指针回指一次
            count = rs.getRow();  // 得到结果集记录条数
            System.out.println("共检索出" + count + "条记录");
        }
        catch (SQLException | ClassNotFoundException e) {
            System.out.println("错误:" + e.getMessage());
        }
        finally {
            rs.close();
            stmt.close();
            conn.close();
            System.out.println("结果集、状态、连接已关闭");
        }
    }
}

改:

package database;
import java.sql.*;
public class Update {
	public static void main(String[] args) throws SQLException {
		String dburl = "jdbc:mysql://localhost:3306/student?serverTimezone=Asia/Shanghai";
		Connection conn = null;
		PreparedStatement stmt = null;		
		String key_name = "张三";
		String update_name = "李四";
		double update_math = 90;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn = DriverManager.getConnection(dburl, "root", "1234");
			String updatesql = "update stuinfo set stuname = ?,math = ? where "
					+ "stuname = ?";
			stmt = conn.prepareStatement(updatesql);
			stmt.setString(1, update_name);
			stmt.setDouble(2, update_math);
			stmt.setString(3, key_name);
			int update_count = stmt.executeUpdate();
			System.out.println("共更新" + update_count + "条记录");
		}
		catch (SQLException | ClassNotFoundException e) {
			System.out.println("错误:" + e.getMessage());
		}
		finally {
			stmt.close();
			conn.close();
		}
	}
}

同时数据库与IDEA的连接也很重要。

①导入的驱动包

②程序代码

具体可参考https://blog.csdn.net/weixin_33888685/article/details/113466510

标签:insert,String,rs,stmt,学生,实验,println,信息管理系统,conn
来源: https://blog.csdn.net/JUST192210713125/article/details/122135237

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有