JAVA+MYSQL可视化学生信息管理系统

     掌握数据库连接Java程序可视化界面的流程,有效编写Java可视化界面程序及其功能(增删改查),了解数据库内容编写和连接的流程。

     定义变量:Sno(String),Sname(String),_Class(String),Age(int),Sex(String)

public class HomeWork {
    private static PreparedStatement stmt=null;
    private static ResultSet rs= null;
    private static Connection conn = null;
    private static String Sno,Sname,_Class,Sex,sql;
    private static int Age;
    private static void createAndShowGUI() {
        JFrame f=new JFrame("菜单");
        f.setLayout(new GridLayout(6,1));
        f.setSize(400,300);
        f.setLocation(300,200);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 Button btn1=new Button("添加学生信息");
        Button btn2=new Button("修改学生信息");
        Button btn3=new Button("删除学生信息");
        Button btn4=new Button("按性别查找学生信息");
        Button btn5=new Button("按年龄查找学生信息");
        Button btn6=new Button("按班级查找学生信息");
        f.add(btn1);f.add(btn2);f.add(btn3);
        f.add(btn4);f.add(btn5);f.add(btn6);
        JPanel panel1=new JPanel(new GridLayout(6,2));
        JLabel lab11=new JLabel("请输入学号:");
        JLabel lab12=new JLabel("请输入姓名:");
        JLabel lab13=new JLabel("请输入班级:");
        JLabel lab14=new JLabel("请输入年龄:");
        JLabel lab15=new JLabel("请输入性别:");
        JTextField input11=new JTextField(10);
        JTextField input12=new JTextField(10);
        JTextField input13=new JTextField(10);
        JTextField input14=new JTextField(10);
        JTextField input15=new JTextField(10);
        Button btn11=new Button("提交");
        panel1.add(lab11);    panel1.add(input11);
        panel1.add(lab12);    panel1.add(input12);
        panel1.add(lab13);    panel1.add(input13);
        panel1.add(lab14);    panel1.add(input14);
        panel1.add(lab15);    panel1.add(input15);
        panel1.add(btn11);
        JPanel panel2=new JPanel(new GridLayout(6,2));
        JLabel lab21=new JLabel("请输入学号:");
        JLabel lab22=new JLabel("请输入姓名:");
        JLabel lab23=new JLabel("请输入班级:");
        JLabel lab24=new JLabel("请输入年龄:");
        JLabel lab25=new JLabel("请输入性别:");
        JTextField input21=new JTextField(10);
        JTextField input22=new JTextField(10);
        JTextField input23=new JTextField(10);
        JTextField input24=new JTextField(10);
        JTextField input25=new JTextField(10);
        Button btn21=new Button("提交");
        panel2.add(lab21);    panel2.add(input21);
        panel2.add(lab22);    panel2.add(input22);
        panel2.add(lab23);    panel2.add(input23);
        panel2.add(lab24);    panel2.add(input24);
        panel2.add(lab25);    panel2.add(input25);
        panel2.add(btn21);
        JPanel panel3=new JPanel(new GridLayout(2,2));
        JLabel lab31=new JLabel("请输入学号:");
        JTextField input31=new JTextField(10);
        Button btn31=new Button("提交");
        panel3.add(lab31);    panel3.add(input31);panel3.add(btn31);
        JPanel panel4=new JPanel(new GridLayout(2,2));
        JLabel lab41=new JLabel("请输入性别:");
        JTextField input41=new JTextField(10);
        Button btn41=new Button("提交");
        panel4.add(lab41);    panel4.add(input41);panel4.add(btn41);
        JPanel panel5=new JPanel(new GridLayout(3,2));
        JLabel lab51=new JLabel("请输入年龄上限:");
        JLabel lab52=new JLabel("请输入年龄下限:");
        JTextField input51=new JTextField(10);
        JTextField input52=new JTextField(10);
        Button btn51=new Button("提交");
        panel5.add(lab51);    panel5.add(input51);
        panel5.add(lab52);    panel5.add(input52);
        panel5.add(btn51);
        JPanel panel6=new JPanel(new GridLayout(2,2));
        JLabel lab61=new JLabel("请输入班级:");
        JTextField input61=new JTextField(10);
        Button btn61=new Button("提交");
        panel6.add(lab61);    panel6.add(input61);panel6.add(btn61);
        //为f窗体的6个按钮创建窗体,并将面板添加到窗体中
        JFrame f1=new JFrame("添加学生信息");
        f1.setLayout(new FlowLayout());
        f1.setSize(300,200);
        f1.setLocation(300,200);
        f1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //只关闭子窗口
        JFrame f2=new JFrame("修改学生信息");
        f2.setLayout(new FlowLayout());
        f2.setSize(300,200);
        f2.setLocation(300,200);
        f2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        JFrame f3=new JFrame("删除学生信息");
        f3.setLayout(new FlowLayout());
        f3.setSize(300,200);
        f3.setLocation(300,200);
        f3.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        JFrame f4=new JFrame("按性别查找学生信息");
        f4.setLayout(new FlowLayout());
        f4.setSize(300,200);
        f4.setLocation(300,200);
        f4.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        JFrame f5=new JFrame("按年龄查找学生信息");
        f5.setLayout(new FlowLayout());
        f5.setSize(300,200);
        f5.setLocation(300,200);
        f5.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        JFrame f6=new JFrame("按班级查找学生信息");
        f6.setLayout(new FlowLayout());
        f6.setSize(300,200);
        f6.setLocation(300,200);
        f6.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f1.add(panel1); f2.add(panel2); f3.add(panel3);
        f4.add(panel4); f5.add(panel5); f6.add(panel6);
        JTextArea showArea1=new JTextArea(30,35);
        JTextArea showArea2=new JTextArea(30,35);
        JTextArea showArea3=new JTextArea(30,35);
        JScrollPane scrollPane1=new JScrollPane(showArea1);
        JScrollPane scrollPane2=new JScrollPane(showArea2);
        JScrollPane scrollPane3=new JScrollPane(showArea3);
        showArea1.setEditable(false);
        showArea2.setEditable(false);
        showArea3.setEditable(false);
        JFrame f41=new JFrame("查询结果");
        f41.setLayout(new FlowLayout());
        f41.setSize(400,200);
        f41.setLocation(300,200);
        f41.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        JFrame f51=new JFrame("查询结果");
        f51.setLayout(new FlowLayout());
        f51.setSize(400,200);
        f51.setLocation(300,200);
        f51.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        JFrame f61=new JFrame("查询结果");
        f61.setLayout(new FlowLayout());
        f61.setSize(400,200);
        f61.setLocation(300,200);
        f61.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f41.add(scrollPane1); f51.add(scrollPane2); f61.add(scrollPane3);
        JDialog dialog1=new JDialog(f1,"添加结果");
        dialog1.setSize(220, 150); 
        dialog1.setLocation(350, 250);
        dialog1.setLayout(new FlowLayout());    
        JLabel lab111=new JLabel("添加成功!");
        dialog1.add(lab111);
        JDialog dialog2=new JDialog(f2,"修改结果");
        dialog2.setSize(220, 150);
        dialog2.setLocation(350, 250);
        dialog2.setLayout(new FlowLayout());
        JLabel lab222=new JLabel("修改成功!");
        dialog2.add(lab222);
        JDialog dialog3=new JDialog(f3,"删除结果");
        dialog3.setSize(220, 150);
        dialog3.setLocation(350, 250);
        dialog3.setLayout(new FlowLayout());
        JLabel lab333=new JLabel("删除成功!");
        dialog3.add(lab333);
        btn1.addActionListener(e->{
            f1.setVisible(true);
        });
        btn11.addActionListener(e->{
            PreparedStatement stmt=null;
            try {
                Connection conn=HomeWork.Mysql_conn();
                Sno=input11.getText();
                Sname=input12.getText();
                _Class=input13.getText();
                Age=Integer.parseInt(input14.getText());
                Sex=input15.getText();
                sql="insert into java values(?,?,?,?,?)";
                stmt=conn.prepareStatement(sql);
                stmt.setString(1, Sno);
                stmt.setString(2, Sname);
                stmt.setString(3, _Class);
                stmt.setInt(4, Age);
                stmt.setString(5, Sex);
                stmt.executeUpdate();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            dialog1.setVisible(true);
        });
        btn2.addActionListener(e->{
            f2.setVisible(true);
        });
        btn21.addActionListener(e->{
            PreparedStatement stmt=null;
            try {
                Connection conn=HomeWork.Mysql_conn();
                sql="update java set Sname=?,_Class=?,Age=?,Sex=? where Sno=?";
                stmt=conn.prepareStatement(sql);
                Sno=input21.getText();
                stmt=conn.prepareStatement(sql);
                Sname=input22.getText();
                _Class=input23.getText();
                Age=Integer.parseInt(input24.getText());
                Sex=input25.getText();
                stmt.setString(1, Sname);
                stmt.setString(2, _Class);
                stmt.setInt(3, Age);
                stmt.setString(4, Sex);
                stmt.setString(5, Sno);
                stmt.executeUpdate();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            dialog2.setVisible(true);
        });
        btn3.addActionListener(e->{
            f3.setVisible(true);
        });
        btn31.addActionListener(e->{
            PreparedStatement stmt=null;
            try {
                Connection conn=HomeWork.Mysql_conn();
                sql="delete from java where Sno=?";
                stmt=conn.prepareStatement(sql);
                Sno=input31.getText();
                stmt=conn.prepareStatement(sql);
                stmt.setString(1, Sno);
                stmt.executeUpdate();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            dialog3.setVisible(true);
        });
        btn4.addActionListener(e->{
            f4.setVisible(true);
        });
        btn41.addActionListener(e->{
            PreparedStatement stmt=null;
            ResultSet rs= null;
            try {
                Connection conn=HomeWork.Mysql_conn();
                Sex=input41.getText();
                sql="select * from java where Sex=?";
                stmt=conn.prepareStatement(sql);
                stmt.setString(1, Sex);
                rs = stmt.executeQuery();
                showArea1.append("    学号     姓名     班级    年龄    性别 "+"\n");
                while(rs.next()){
                    showArea1.append(rs.getString("Sno")+" | "+rs.getString("Sname")+" | "+rs.getString("_Class")+" | "+rs.getInt("Age")+" | "+rs.getString("Sex"));
                    showArea1.append("\n");
                }
                f41.setVisible(true);
                scrollPane1.setVisible(true);
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        });
        btn5.addActionListener(e->{
            f5.setVisible(true);
        });
        btn51.addActionListener(e->{
            PreparedStatement stmt=null;
            ResultSet rs= null;
            try {
                Connection conn=HomeWork.Mysql_conn();
                int max=Integer.parseInt(input51.getText());
                int min=Integer.parseInt(input52.getText());
                sql="select * from java where Age between ? and ?";
                stmt=conn.prepareStatement(sql);
                stmt.setInt(1, min);
                stmt.setInt(2, max);
                rs = stmt.executeQuery();
                showArea2.append("    学号     姓名     班级    年龄    性别 "+"\n");
                while(rs.next()){
                    showArea2.append(rs.getString("Sno")+" | "+rs.getString("Sname")+" | "+rs.getString("_Class")+" | "+rs.getInt("Age")+" | "+rs.getString("Sex"));
                    showArea2.append("\n");
                }
                f51.setVisible(true);
                scrollPane2.setVisible(true);
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        });
        btn6.addActionListener(e->{
            f6.setVisible(true);
        });
        btn61.addActionListener(e->{
            PreparedStatement stmt=null;
            ResultSet rs= null;
            try {
                Connection conn=HomeWork.Mysql_conn();
                String pro=input61.getText();
                pro=pro+"%";
                sql="select * from java where _Class like ? ";
                stmt=conn.prepareStatement(sql);
                stmt.setString(1, pro);
                rs = stmt.executeQuery();
                showArea3.append("    学号     姓名     班级    年龄    性别 "+"\n");
                while(rs.next()){
                    showArea3.append(rs.getString("Sno")+" | "+rs.getString("Sname")+" | "+rs.getString("_Class")+" | "+rs.getInt("Age")+" | "+rs.getString("Sex"));
                    showArea3.append("\n");
                }
                f61.setVisible(true);
                scrollPane3.setVisible(true);
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        });
}
public static Connection Mysql_conn() throws SQLException{
        PreparedStatement stmt=null;
        ResultSet rs= null;
        Connection conn = null;
        String url = "jdbc:mysql://localhost:3306/mysqljava?characterEncoding=utf8";
        String username = "root";
        String password = "2091921381";
        conn = DriverManager.getConnection(url, username, password);
        return conn;
    }
    public static void main(String[] args){
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            SwingUtilities.invokeLater(HomeWork::createAndShowGUI);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if(rs!=null) {
                try {
                    stmt.close();
                }catch(SQLException e) {
                    e.printStackTrace();
                }
                rs=null;}
            if(stmt!=null) {
                try {
                    stmt.close();
                }catch(SQLException e) {
                    e.printStackTrace();}
                stmt=null;
            }
            if(conn!=null) {
                try {
                    conn.close();
                }catch(SQLException e) {
                    e.printStackTrace();
                }
                conn=null;}
        }
    }
}

    Java连接数据库应用包:  

 

Java连接数据库的DB Browser的connection:

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Java利用MySQL实现学生信息管理系统的主要步骤如下: 1. 创建数据库和表:首先,需要在MySQL中创建一个适当的数据库,用于存储学生信息。然后,创建一个学生表,其中包含学生的各个属性,如学号、姓名、年龄、性别等。 2. 连接数据库:使用Java的JDBC API连接MySQL数据库。在Java程序中,可以使用相应的JDBC驱动程序来连接数据库,并定义连接字符串、用户名和密码。 3. 编写Java类和方法:开始编写Java类和方法,用于各种操作,如插入、删除、更新和查询学生信息。 4. 插入学生信息:通过Java程序,向学生表中插入学生的各项信息。可以通过定义一个插入方法,在方法内部使用SQL语句将学生信息插入数据库。 5. 删除和更新学生信息:通过Java程序,可以根据学号或其他条件来删除和更新学生的信息。同样,可以定义相应的方法来执行这些操作。 6. 查询学生信息:可以通过Java程序实现各种查询功能,如根据学号查询学生信息、查询全部学生信息等。定义相应的查询方法,并通过执行SQL语句从数据库中获取查询结果。 7. 展示学生信息:通过Java程序将查询结果展示在用户界面上,可以使用图形用户界面(GUI)或命令行界面(CLI)等方式展示。 总之,Java利用MySQL实现学生信息管理系统需要创建数据库和表、连接数据库、编写Java类和方法来实现各种操作,并将查询结果展示给用户。这样可以方便地对学生信息进行管理和查询。 ### 回答2: 学生信息管理系统使用Java语言结合MySQL数据库实现,可以通过以下几个步骤: 1. 创建MySQL数据库:首先在MySQL中创建一个数据库,用于存储学生的各种信息。可以通过MySQL的命令行或者可视化工具进行创建。 2. 创建学生信息表:在数据库中创建一个学生信息表,包含学生的各种字段,如学号、姓名、性别、年龄等。可以使用MySQL的CREATE TABLE语句来创建表格。 3. 使用Java连接MySQL:在Java代码中使用JDBC API来连接MySQL数据库。导入相应的JDBC库文件,创建数据库连接字符串,并使用getConnection()方法连接MySQL数据库。 4. 实现学生信息的增删改查功能:通过执行SQL语句,实现学生信息的增加、删除、修改和查询功能。可以使用Java的PreparedStatement或Statement来执行SQL语句。 5. 编写用户界面:通过Java的GUI工具包(如Swing或JavaFX)编写学生信息管理系统的用户界面。可以添加按钮、文本框等组件,用于用户的输入和显示。 6. 实现用户交互:将用户的操作与数据库的增删改查功能进行关联。例如,当用户点击“添加”按钮时,将用户输入的信息插入到数据库中;当用户点击“查询”按钮时,从数据库中查询符合条件的学生信息,并在界面上显示出来。 7. 异常处理和数据校验:对用户的输入数据进行合法性校验,例如判定学生年龄是否为数字等。同时,要在代码中进行异常处理,防止程序崩溃或出错。 通过以上步骤,就可以实现一个基于JavaMySQL学生信息管理系统。用户可以通过界面进行学生信息的增删改查操作,数据将被存储在MySQL数据库中,实现数据的持久化。 ### 回答3: Java利用MySQL实现学生信息管理系统是一种常见的做法。MySQL是一种开源的关系型数据库,而Java是一种广泛使用的面向对象编程语言,二者结合可以实现学生信息的增删改查等功能。 首先,通过Java可以建立数据库连接,使用MySQL提供的JDBC驱动程序完成数据库连接的操作。连接成功后,可以通过执行SQL语句来创建学生信息相关的表,并定义表中的字段,例如学生的学号、姓名、年龄、性别等信息。 接下来,通过Java可以实现学生信息的增删改查功能。通过执行相应的SQL语句,可以将学生信息插入到数据库中,或者从数据库删除学生信息。对于修改学生信息的操作,可以先查询到需要修改的学生信息,然后用新的信息更新数据库中的记录。对于查询学生信息的功能,可以根据不同的条件编写SQL查询语句,例如根据学号查询、根据姓名查询等。 此外,Java还可以实现学生信息管理系统的用户界面。可以使用Java的GUI库,如Swing或JavaFX,设计出一个用户友好的界面,方便用户输入与显示学生信息。例如,可以用文本框接收用户输入的学生信息,或者用表格显示从数据库中查询到的学生信息。 总之,Java利用MySQL实现学生信息管理系统是一种强大而灵活的方法。通过Java的编程能力与MySQL的数据存储能力相结合,可以达到高效地管理学生信息的目的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值