JDBC练习 学生学籍管理系统1.0(sql server)

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

public class SqlLink {

    static Scanner sc=new Scanner(System.in);
    static Connection dbConn=null;
    static Statement sta=null;
    static ResultSet resultSet=null;
    static List list=new ArrayList();

    public SqlLink(String userName,String userPwd)
    {


        Scanner sc=new Scanner(System.in);
        String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";

        //协议、主机地址、端口号、数据库名
        String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=MySqlTest";


        try
        {
            Class.forName(driverName);

            //指定3个参数,分别是连接地址,用户名 和密码
            dbConn= DriverManager.getConnection(dbURL,userName,userPwd);

            System.out.println("数据库连接成功");
           // tableInit();    //初始化学生信息表

            while (true)
            {
                DBLinkTestMain.mainList();
                switch (sc.nextInt())
                {
                    case 1:
                        setAddStudent();
                        break;
                    case 2:
                        delStudent();
                        break;
                    case 3:
                        revStudent();
                        break;
                    case 4:
                        queStudent();
                        break;
                    case 0:
                        return;
                }
            }
        }
        catch ( Exception e)
        {
            // TODO: handle exception
            e.printStackTrace();
            System.out.println("连接失败");
        }
        finally {

            if (sta!=null)
                try {
                    sta.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }

            if (dbConn!=null) {
                try {
                    dbConn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void setAddStudent()//增
    {

        System.out.println("下面开始新增学生信息:");
        System.out.println("学生学号:");
        String num = sc.next();
        System.out.println("学生姓名:");
        String sname=sc.next();
        System.out.println("学生性别:");
        String sex=sc.next();
        System.out.println("学生年龄:");
        int age=sc.nextInt();
        System.out.println("学生专业:");
        String major=sc.next();
        addStudent(num,sname,sex,age,major);
    }


    public static void addStudent(String num,String sname,String sex,int age,String major)    //增
    {

        String addStu = "insert into 学生信息表 (学号,姓名,性别,年龄,专业) " +
                "values ('"+num+"','"+sname+"','"+sex+"','"+age+"','"+major+"');";

        try {
            sta=dbConn.createStatement();
            sta.executeUpdate(addStu);
            System.out.println("数据添加成功");

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


    }

    public static void delStudent()//删
    {
        System.out.println("请输入要删除的学生学号:");
        String num=sc.next();
        String delStu="delete from 学生信息表 where 学号='"+num+"'";

        try {
            sta=dbConn.createStatement();
            sta.executeUpdate(delStu);
            System.out.println("数据删除成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public static void revStudent()//改
    {
       
        System.out.println("1.根据学号修改信息");
        System.out.println("2.根据姓名修改信息");
        int key=sc.nextInt();
        if (key==1) {
            System.out.println("请输入学号:");
            numRevStudent(sc.next());
        }
        else if (key==2) {
            System.out.println("请输入姓名:");
            nameRevStudent(sc.next());
        }
    }

    public static void numRevStudent(String num)//按学号改
    {

        numQueStudent(num);
        System.out.println("请选择要修改的信息:");
        System.out.println("1.学号 2.姓名 3.性别 4.年龄 5.专业");
        int key = sc.nextInt();
        String revString="";
        switch (key)
        {
            case 1 :
                revString="学号";
                break;
            case 2 :
                revString="姓名";
                break;
            case 3 :
                revString="性别";
                break;
            case 4 :
                revString="年龄";
                break;
            case 5 :
                revString="专业";
                break;
        }

        System.out.println("请输入修改的字段");
        String tostr=sc.next();
        String str = "update 学生信息表 set "+revString+"='"+tostr+"'"+"where 学号='"+num+"'";

        try {
            sta=dbConn.createStatement();
            sta.executeUpdate(str);
            System.out.println("修改成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public static void nameRevStudent(String name)//按姓名改
    {
        numQueStudent(name);
        System.out.println("请选择要修改的信息:");
        System.out.println("1.学号 2.姓名 3.性别 4.年龄 5.专业");
        int key = sc.nextInt();
        String revString="";
        switch (key)
        {
            case 1 :
                revString="学号";
                break;
            case 2 :
                revString="姓名";
                break;
            case 3 :
                revString="性别";
                break;
            case 4 :
                revString="年龄";
                break;
            case 5 :
                revString="专业";
                break;
        }

        System.out.println("请输入修改的字段");
        String tostr=sc.next();
        String str = "update 学生信息表 set "+revString+"='"+tostr+"'"+"where 姓名='"+name+"'";

        try {
            sta=dbConn.createStatement();
            sta.executeUpdate(str);
            System.out.println("修改成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public static void queStudent()    //查
    {
        System.out.println("1.按学号查找");
        System.out.println("2.按姓名查找");
        System.out.println("3.按性别查找");
        System.out.println("4.按专业查找");
        switch (sc.nextInt())
        {
            case 1:
                System.out.println("请输入学生学号");
                numQueStudent(sc.next());
                break;
            case 2:
                System.out.println("请输入学生姓名");
                nameQueStudent(sc.next());
                break;
            case 3:
                System.out.println("请输入性别");
                sexQueStudent(sc.next());
                break;
            case 4:
                System.out.println("请输入专业");
                majorQueStudent(sc.next());
                break;
        }

    }

    public static void numQueStudent(String num)//按学号查
    {

        try {
            sta=dbConn.createStatement();
            String numQueStudent="select * from 学生信息表 where 学号='"+num+"'";
            resultSet=sta.executeQuery(numQueStudent);
            while (resultSet.next())
            {
                list.add(resultSet.getString("学号"));
                list.add(resultSet.getString("姓名"));
                list.add(resultSet.getString("性别"));
                list.add(resultSet.getString("年龄"));
                list.add(resultSet.getString("专业"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        int count=0;
        for (int i=0;i<list.size();i++)
        {
            System.out.print(list.get(i)+" ");
            count++;
            if (count%5==0)
                System.out.println();

        }
    }

    public static void nameQueStudent(String name)//按姓名查
    {

        try {
            sta=dbConn.createStatement();
            String nameQueStudent="select * from 学生信息表 where 姓名='"+name+"'";
            resultSet=sta.executeQuery(nameQueStudent);
            while (resultSet.next())
            {
                list.add(resultSet.getString("学号"));
                list.add(resultSet.getString("姓名"));
                list.add(resultSet.getString("性别"));
                list.add(resultSet.getString("年龄"));
                list.add(resultSet.getString("专业"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        int count=0;
        for (int i=0;i<list.size();i++)
        {
            System.out.print(list.get(i)+" ");
            count++;
            if (count%5==0)
                System.out.println();
        }
    }

    public static void sexQueStudent(String sex)//按性别查
    {

        try {
            sta=dbConn.createStatement();
            String sexQueStudent="select * from 学生信息表 where 性别='"+sex+"'";
            resultSet=sta.executeQuery(sexQueStudent);
            while (resultSet.next())
            {
                list.add(resultSet.getString("学号"));
                list.add(resultSet.getString("姓名"));
                list.add(resultSet.getString("性别"));
                list.add(resultSet.getString("年龄"));
                list.add(resultSet.getString("专业"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        int count=0;
        for (int i=0;i<list.size();i++)
        {
            System.out.print(list.get(i)+" ");
            count++;
            if (count%5==0)
                System.out.println();

        }
    }

    public static void majorQueStudent(String major)//按专业查
    {

        try {
            sta=dbConn.createStatement();
            String majorQueStudent="select * from 学生信息表 where 专业='"+major+"'";
            resultSet=sta.executeQuery(majorQueStudent);
            while (resultSet.next())
            {
                list.add(resultSet.getString("学号"));
                list.add(resultSet.getString("姓名"));
                list.add(resultSet.getString("性别"));
                list.add(resultSet.getString("年龄"));
                list.add(resultSet.getString("专业"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        int count=0;
        for (int i=0;i<list.size();i++)
        {
            System.out.print(list.get(i)+" ");
            count++;
            if (count%5==0)
                System.out.println();

        }
    }

        public static void tableInit()
    {
        String creTab = "create table 学生信息表(学号 varchar(15) primary key," +
                "姓名 varchar(5) unique , 性别 varchar(2),年龄 int ," +
                "专业 varchar(10))";
        try {
            sta=dbConn.createStatement();
            int count=sta.executeUpdate(creTab);

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

    }
}

import java.util.Scanner;

public class DBLinkTestMain {

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        boolean flag=true;
        String userName = null;
        String userPwd = null;
        while (true)
        {
            System.out.println("请输入数据库用户名:");
            userName = sc.next();
            System.out.println("请输入密码:");
            userPwd = sc.next();
            flag=isNameOrPwd(userName,userPwd);
            if (flag)
                break;
            else
            System.out.println("用户名或密码输入错误,请重新输入:");
        }

       
        SqlLink sLink1 = new SqlLink(userName,userPwd);


    }

    public static void mainList()    //根菜单
    {

        System.out.println("-----------------欢迎进入学生学籍管理系统--------------------");
        System.out.println("-------------------------主菜单----------------------------");
        System.out.println("请按选项选择你需要的功能:");
        System.out.println("1.新增学生数据");
        System.out.println("2.删除学生数据");
        System.out.println("3.修改学生数据");
        System.out.println("4.查询学生数据");
        System.out.println("0.退出");

    }

    public static boolean isNameOrPwd(String userName,String userPwd)
    {
            //检测用户名密码
        if (userName.equals("TangHao")&&userPwd.equals("tanghao6.1"))
            return true;
        return false;
    }

}

猜你喜欢

转载自blog.csdn.net/QiuBika_061/article/details/84893679