通过JAVA(jdbc)动态简单维护MYSQL数据库中的表(学生管理系统)

通过JAVA(jdbc)动态简单维护MYSQL数据库中的表(学生管理系统)

 

一:在MYSQL中创建一张表

建表过程:

CREATE TABLE class(

class_id CHAR(30) PRIMARY KEY,

class_name VARCHAR(30) NOT NULL,

class_major VARCHAR(30) NOT NULL,

student_number INT

);

CREATE TABLE student(

sid CHAR(30) NOT NULL,

sname VARCHAR(30)NOT NULL,

ssex VARCHAR(30) NOT NULL,

sage INT,

sclass_id CHAR(30),

PRIMARY KEY(sid,sclass_id),

foreign key(sclass_id) references class(class_id)

);

CREATE TABLE course(

course_id CHAR(30) PRIMARY KEY,

course_name VARCHAR(30) NOT NULL,

course_hour INT,

course_credit INT

);

create  table sc(

sid  CHAR(30),

course_id CHAR(30) ,

score Double,

foreign key(sid) references student(sid),

foreign key(course_id) references course(course_id),

primary key(sid,course_id)

);

CREATE TABLE teacher(

teachar_id CHAR(30) PRIMARY KEY,

teachar_title  VARCHAR(30) NOT NULL,

teachar_name VARCHAR(30) NOT NULL,

teachar_age INT,

teachar_sex CHAR(30)

);

CREATE TABLE tc(

teachar_id CHAR(30) NOT NULL,

course_id CHAR(30) NOT NULL,

class_time date NOT NULL,

primary key(teachar_id,course_id),

foreign key(teachar_id) references teacher(teachar_id),

foreign key(course_id) references course(course_id)

);

   

二:通过jdbc访问数据库详细步骤   

1将jdbc驱动程序加载到内存

Class.forName("驱动全限定名");

2 用驱动程序管理器从驱动程序中获取一个连接对象

Connection conn= DriverManager.getConnection("root,user,password");

3编写一个字符串的SQL语句

String sql = "MYSQL语句";

4通过conn连接对象,来创建一个ps的Statement的语句对象,把sql赋给ps

PreparedStatement ps = conn.prepareStatement(sql);

5使用结果集中的数据

插入:ps.setString(1,id);

获取:ps.getString(1,id);

6执行sql语句

ps.execute();执行返回多个结果集

ps.executeUpdate();返回整数,表示受影响的行数,比如(create,drop,Insert,update,delete)

ps.executeQuery();产生单个结果集,比如(Select)

7关闭所有JDBC对象

conn.close();
ps.close();

三:对数据库中的表进行增删查改

package studentmanagesystem;

import java.sql.*;
import java.util.Scanner;

/**
 * @Author: 仍·旧
 * @Date 2022/5/26  20:04
 **/
/*
* class_id班级号
* class_name班级名
* class_major专业
* student_number学生人数
 */
public class studentcs {
    private final static String classname = "com.mysql.cj.jdbc.Driver";
    private final static String url = "jdbc:mysql://localhost:3306/text8";
    private final static String user = "root";
    private final static String password = "*******";
    public final static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {

              while (true){
                  System.out.println("1:增加班级\n2:增加学生信息\n3:录入成绩\n4:查询学生信息\n5:修改学生信息");
                  int a=sc.nextInt();
                  if(a==1){
                      addclass();
                      continue;
                  }else if(a==2){
                      addstudent();
                      continue;
                  }else if(a==3){
                      addgrade();
                      continue;
                  }else if(a==4){
                      findstudent();
                      continue;
                  }else  if(a==5){
                      updata();
                      continue;
                  }
              }
    }
    public static void addclass(){
        try {
            Class.forName(classname);
            Connection conn = DriverManager.getConnection(url, user, password);
            while (true) {
                System.out.println("请输入班级号,班级名,专业,学生人数");
                System.out.println("输入1进行插入,输入2退出");
                int a = sc.nextInt();
                if (a == 1) {
                    System.out.println("请输入班级号");
                    String id = sc.next();
                    System.out.println("请输入班级名");
                    String name = sc.next();
                    System.out.println("请输入专业");
                    String major = sc.next();
                    System.out.println("请输入学生人数");
                    String number = sc.next();
                    String sql = "insert into class values(?,?,?,?)";
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1,id);
                    ps.setString(2,name);
                    ps.setString(3,major);
                    ps.setString(4,number);
                    ps.executeUpdate();
                    System.out.println("插入完毕");
                    ps.close();
                    continue;
                }else if(a==2){
                    break;
                }

            }
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }


    }
    //sid CHAR(30) NOT NULL,
    //sname VARCHAR(30)NOT NULL,
    //ssex VARCHAR(30) NOT NULL,
    //sage INT,
    //sclass_id CHAR(30),
    //PRIMARY KEY(sid,sclass_id),
    public static void addstudent(){
        try {
            Class.forName(classname);
            Connection conn=DriverManager.getConnection(url,user,password);
            while (true) {
                System.out.println("请输入学生学号,姓名,性别,年龄,班级号");
                System.out.println("输入1进行插入,输入2退出");
                int a = sc.nextInt();
                if(a==1) {
                    System.out.println("学生学号");
                    String id=sc.next();
                    System.out.println("姓名");
                    String name=sc.next();
                    System.out.println("性别");
                    String sex=sc.next();
                    System.out.println("年龄");
                    int age=sc.nextInt();
                    System.out.println("班级号");
                    String cid=sc.next();
                    String sql = "insert into student values (?,?,?,?,?)";
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1,id);
                    ps.setString(2,name);
                    ps.setString(3,sex);
                    ps.setInt(4,age);
                    ps.setString(5,cid);
                    ps.executeUpdate();
                    System.out.println("插入完毕!");
                    ps.close();
                    continue;
                }else if(a==2) {
                    break;
                }
            }
            conn.close();

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

    }
    //sid  CHAR(30),
    //course_id CHAR(30) ,
    //score Double,
    public static void addgrade(){
        try {
            Class.forName(classname);
            Connection conn=DriverManager.getConnection(url,user,password);
            while (true) {
                System.out.println("请输入学生学号,课程号,成绩");
                System.out.println("输入1进行插入,输入2退出");
                int a = sc.nextInt();
                if(a==1) {
                    System.out.println("学生学号");
                    String sid=sc.next();
                    System.out.println("课程号");
                    String cid=sc.next();
                    System.out.println("成绩");
                    Double score=sc.nextDouble();
                    String sql = "insert into sc values (?,?,?)";
                    PreparedStatement ps = conn.prepareStatement(sql);
                    ps.setString(1,sid);
                    ps.setString(2,cid);
                    ps.setDouble(3,score);
                    ps.executeUpdate();
                    System.out.println("插入完毕!");
                    ps.close();
                }else if(a==2){
                    break;
                }
            }
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }
     public static void findstudent(){
         try {
             Class.forName(classname);
             Connection conn=DriverManager.getConnection(url,user,password);
             System.out.println("请输入你要查询的学生学号");
             String id=sc.next();
             String sql="select a.sid,a.sname,d.class_name,d.class_major,c.course_name,b.score,c.course_hour FROM student AS a INNER JOIN sc AS b ON a.sid=b.sid INNER JOIN course AS c ON b.course_id=c.course_id INNER JOIN class AS d ON d.class_id=a.sclass_id where a.sid=?";
             //输入ps
             PreparedStatement ps=conn.prepareStatement(sql);
             //输出rs

             ps.setString(1,id);
             ps.executeQuery();
             ResultSet rs=ps.executeQuery();

             while (rs.next()){
                 System.out.println("学号:"+rs.getString("sid")+"\t"+"姓名:"+
                         rs.getNString("sname")+"\t" +
                         "专业:"+rs.getString("class_major")+"\t" +
                         "班级:"+rs.getString("class_name")+"\t" +
                         "课程名:"+rs.getString("course_name")+"\t" +
                         "课程成绩:"+rs.getDouble("score")+"\t" +
                         "课程课时:"+rs.getInt("course_hour"));
             }
             System.out.println("查询完毕!");
             ps.close();
             conn.close();
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
         } catch (SQLException throwables) {
             throwables.printStackTrace();
         }
     }
     public static void updata(){
         try {
             Class.forName(classname);
             Connection conn=DriverManager.getConnection(url,user,password);
             while (true) {
                 System.out.println("1:修改学号\n2:修改姓名\n3:修改性别\n4:修改年龄\n5:修改班级号\n6删除改学生信息");
                 int a = sc.nextInt();
                 if (a == 1) {
                     String sql = "update student set sid=? where sid=?";
                     PreparedStatement ps=conn.prepareStatement(sql);
                     System.out.println("请输入要修改学生的学号");
                     String sid=sc.next();
                     System.out.println("请输入新的学号");
                     String sid1=sc.next();
                     ps.setString(2,sid);
                     ps.setString(1,sid1);
                     ps.executeUpdate();
                     System.out.println("学号修改完毕");
                     ps.close();
                     conn.close();
                 } else if (a == 2) {
                     String sql = "updata student set sname=? where ssid=?";
                 } else if (a == 3) {
                     String sql = "updata student set ssex=? where ssid=?";
                 } else if (a == 4) {
                     String sql = "updata student set sage=? where ssid=?";
                 } else if (a == 5) {
                     String sql = "updata student set sclass_id=? where ssid=?";
                 } else if (a == 6) {
                     String sql = "delete from student where sid=?";
                 }
             }
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
         } catch (SQLException throwables) {
             throwables.printStackTrace();
         }
     }
}

运行结果:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,需要在MySQL数据库创建一个名为“student_management”的数据库。然后,可以使用JavaJDBC API连接到数据库。以下是创建学生管理系统的一些步骤: 1. 创建一个Java项目,并将MySQLJDBC驱动程序添加到项目。 2. 在Java代码,使用JDBC API连接到MySQL数据库。 3. 创建一个名为“students”的,该包含学生的姓名、年龄、性别和成绩等信息。 4. 编写Java代码来实现学生管理系统的各种功能,例如添加学生、删除学生、更新学生信息和查询学生信息等。 5. 将Java代码与用户界面(例如Swing或JavaFX)结合使用,以便用户可以轻松地使用学生管理系统。 总之,创建学生管理系统需要使用JavaMySQL,并使用JDBC API连接到数据库。然后,可以编写Java代码来实现各种功能,并将其与用户界面结合使用。 ### 回答2: Java是一种非常流行的编程语言,它在各种应用程序开发得到了广泛的应用。学生管理系统是一种基于数据库的应用程序,如何使用Java来连接MySQL数据库创建学生管理系统呢? 首先,我们需要安装MySQL数据库并创建一个名为“student”的数据库。我们可以使用MySQL命令行或图形界面工具来完成这个步骤。接下来,我们需要使用Java连接MySQL数据库,这可以通过使用JDBC API来实现。 在Java应用程序,我们需要导入MySQL JDBC驱动程序,这可以通过将驱动程序的JAR文件添加到项目的类路径来实现。接下来,我们需要使用Java代码建立与MySQL数据库的连接,通过连接对象我们可以执行数据库操作。 为了创建一个学生管理系统,我们需要确定学生的属性和相关的数据,在MySQL数据库创建这些并进行具体的设计。接下来,我们需要编写Java代码来实现以下功能: 1. 添加学生信息:用户输入学生信息,通过Java代码将学生信息插入到MySQL数据库。 2. 查询学生信息:通过Java代码执行SQL查询语句,从MySQL数据库检索学生信息。 3. 修改学生信息:通过Java代码执行SQL更新语句,将用户修改后的学生信息更新到MySQL数据库。 4. 删除学生信息:通过Java代码执行SQL删除语句,从MySQL数据库删除学生信息。 在编写Java代码时,我们需要注意错误处理和异常情况的处理,如连接错误、SQL执行错误等。同时,我们可以使用Java GUI库如Swing或JavaFX来构建学生管理系统的用户界面,实现更好的用户体验。 总之,使用Java连接MySQL数据库创建学生管理系统需要进行多个步骤,包括数据库的创建、驱动程序的导入、建立数据库连接等。一旦数据库连接成功,我们可以使用Java代码实现数据库的各种操作,从而创建一个功能完善的学生管理系统。 ### 回答3: 学生管理系统是一款非常实用的软件,可以帮助学校、教育机构和培训机构更好地管理学生的信息,方便快捷地查询、编辑、添加、删除学生信息等。在这里,我将向大家介绍如何使用Java连接MySQL数据库,创建一款简单学生管理系统。 1. 安装MySQL数据库 首先,我们需要在本地电脑上安装MySQL数据库,可以通过官方网站下载安装包进行安装。安装完成后,需要启动MySQL服务,并创建所需的数据库格,以便存储学生信息。需要注意的是,MySQL数据库的安装和配置需要一定的基础知识,如果您是初学者可以参考相关的教程。 2. 导入JDBC驱动 在Java,我们需要使用JDBC驱动来连接MySQL数据库。下载对应版本的JDBC驱动并将其导入到项目的classpath。在代码加载驱动并获取数据库连接时,需要使用以下命令: ``` Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/student"; //student为数据库名称 String username = "root"; // MySQL用户名称 String password = "123456"; //MySQL密码 Connection conn = DriverManager.getConnection(url, username, password); ``` 3. 创建学生格 在MySQL数据库创建学生格,主要包括学生姓名、学号、性别、年龄、班级等基本信息。在创建格的同时,还需要插入一些测试数据,以便后续测试和操作。具体代码如下: ``` CREATE TABLE student( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, gender VARCHAR(10) NOT NULL, age INT(11) NOT NULL, class_id INT(11) NOT NULL ); INSERT INTO student(name, gender, age, class_id) VALUES("张三", "男", 18, 1); INSERT INTO student(name, gender, age, class_id) VALUES("李四", "女", 19, 2); INSERT INTO student(name, gender, age, class_id) VALUES("王五", "男", 20, 3); INSERT INTO student(name, gender, age, class_id) VALUES("赵六", "女", 21, 4); ``` 4. 编写Java程序 编写Java程序,连接MySQL数据库实现学生信息的添加、修改、删除和查询等功能。具体实现过程如下: (1)添加学生信息 ``` public static void addStudent(String name, String gender, int age, int class_id) throws SQLException { Connection conn = getConn(); //获取数据库连接 String sql = "INSERT INTO student(name, gender, age, class_id) VALUES(?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, name);//设置学生姓名 ps.setString(2, gender);//设置学生性别 ps.setInt(3, age);//设置学生年龄 ps.setInt(4, class_id);//设置学生班级 ps.executeUpdate(); ps.close(); conn.close(); } ``` (2)修改学生信息 ``` public static void updateStudent(int id, String name, String gender, int age, int class_id) throws SQLException { Connection conn = getConn(); String sql = "UPDATE student SET name = ?,gender = ?,age = ?,class_id = ? WHERE id = ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, name); ps.setString(2, gender); ps.setInt(3, age); ps.setInt(4, class_id); ps.setInt(5, id); ps.executeUpdate(); ps.close(); conn.close(); } ``` (3)删除学生信息 ``` public static void deleteStudent(int id) throws SQLException { Connection conn = getConn(); String sql = "DELETE FROM student WHERE id = ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, id); ps.executeUpdate(); ps.close(); conn.close(); } ``` (4)查询学生信息 ``` public static List<Student> queryStudents() throws SQLException { List<Student> students = new ArrayList<>(); Connection conn = getConn(); String sql = "SELECT * FROM student"; PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); while (rs.next()) { Student student = new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setGender(rs.getString("gender")); student.setAge(rs.getInt("age")); student.setClassId(rs.getInt("class_id")); students.add(student); } rs.close(); ps.close(); conn.close(); return students; } ``` 5. 运行程序 最后,我们需要运行Java程序,在控制台或者界面上输入相应的指令,来实现学生信息的添加、修改、删除和查询等功能。具体操作如下: ``` //添加学生信息 addStudent("张三", "男", 18, 1); //修改学生信息 updateStudent(1, "李四", "女", 19, 2); //删除学生信息 deleteStudent(3); //查询学生信息 List<Student> students = queryStudents(); for (Student student : students) { System.out.println(student.toString()); } ``` 以上就是使用Java连接MySQL数据库创建学生管理系统的整个流程。虽然这只是一个简单的实例,但它涵盖了Java连接MySQL数据库的基础知识,对于初学者来说是一个不错的练习。当然,如果想要更深入地了解JavaMySQL的相关知识,还需继续深入学习和实践。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值