• 学生管理系统利用数据库知识,优化无止境。。。。。


    1:需要创建一个学生的基本信息类

    package com.xt.java.base26;
    
    public class Student {
        
        
        private String stuNum;
        
        private String name;
        
        private String gender;
        
        private int age;
        
        private double score;
        
        
        
    
        
        /**
         * @return the stuNum
         */
        public String getStuNum() {
            return stuNum;
        }
    
        /**
         * @param stuNum the stuNum to set
         */
        public void setStuNum(String stuNum) {
            this.stuNum = stuNum;
        }
    
        /**
         * @return the name
         */
        public String getName() {
            return name;
        }
    
        /**
         * @param name the name to set
         */
        public void setName(String name) {
            this.name = name;
        }
    
        /**
         * @return the gender
         */
        public String getGender() {
            return gender;
        }
    
        /**
         * @param gender the gender to set
         */
        public void setGender(String gender) {
            this.gender = gender;
        }
    
        /**
         * @return the age
         */
        public int getAge() {
            return age;
        }
    
        /**
         * @param age the age to set
         */
        public void setAge(int age) {
            this.age = age;
        }
    
        /**
         * @return the score
         */
        public double getScore() {
            return score;
        }
    
        /**
         * @param score the score to set
         */
        public void setScore(double score) {
            this.score = score;
        }
    
        
        
        
    
    }

    2,我创建了一个私有的数据库获取驱动,更加安全。更加方便。

    package com.xt.java.base26;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class StudentDAO {
        
        Connection conn=null;
        Statement stat=null;
        ResultSet rs=null;
        
        private String url="jdbc:mysql://localhost:3306/lyxdatabases?useunicode=true&characterEncoding=utf-8";
        private String bdDriver="com.mysql.jdbc.Driver";
        private String userName="root";
        private String passwd="1234";
        
        private StudentDAO(){
            
        }
        private static  StudentDAO sDao=null;
         public  static StudentDAO getStuDAO(){
            if(sDao==null){
                sDao=new StudentDAO();
            }
            return sDao;
        }
        
        public Connection getConnection() throws ClassNotFoundException, SQLException{
            try {
                Class.forName(bdDriver);
                return DriverManager.getConnection(url,userName,passwd);
                
            } catch (ClassNotFoundException e) {
                throw new ClassNotFoundException("数据加载驱动有问题!!");
            } catch (SQLException e) {
                throw new SQLException("数据库和Java连接有问题!!");
            }
        }
        
        
        //关闭Connection
        public void closeConn(Connection conn){
            try{
                if(conn!=null){
                    conn.close();
                }
            }catch(Exception e){
                e.getMessage();
                e.getStackTrace();
                e.toString();
            }
        }
        //关闭Statement
        public void closeStat(Statement stat){
            try{
                if(stat!=null){
                    stat.close();
                }
                
            }catch(Exception e){
                e.getMessage();
            }
            
        }
        //关闭ResultSet
        public void closeRs(ResultSet rs) throws Exception{
            if(rs!=null){
                rs.close();
            }
        }
        
        
    
    }

    3这是用户需要的基本操作的类。

    package com.xt.java.base26;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class UserAcess {
        
        
        Connection conn=null;
        Statement stat=null;
        ResultSet rs=null;
         StudentDAO sDao=StudentDAO.getStuDAO();
         Scanner scanner=new Scanner(System.in);
    
        //添加一个学生的信息
        public void addStudent(){
            try {
                conn=sDao.getConnection();
                stat=conn.createStatement();
                
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            System.out.println("请输入你要输入的学生的学号:");
            String stuNum=scanner.next();
            System.out.println("请输入您要输入学生的姓名:");
            String name=scanner.next();
            System.out.println("请输入您要输入学生的性别");
            String gender=scanner.next();
            System.out.println("请输入您要输入学生的年龄:");
            int age=scanner.nextInt();
            System.out.println("请输入您要输入学生的成绩:");
            double score=scanner.nextDouble();
            StringBuffer sql=new StringBuffer("insert into student2 values ('");
            sql.append(stuNum).append("','").append(name).append("','").append(gender).append("',").append(age).append(",").append(score)
            .append(")");
            try {
                if(stat.executeUpdate(sql.toString())>0){
                    System.out.println("数据添加成功!!");
                };
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                sDao.closeStat(stat);
                sDao.closeConn(conn);
            }
            
            
        }
            //删除一个学生的信息
            public void deleteStu(String stuNum){
                StringBuffer sql=new StringBuffer("delete from student2 where stuNum=");
                sql.append(stuNum);
                try {
                    conn=sDao.getConnection();
                    stat=conn.createStatement();
                    if(stat.executeUpdate(sql.toString())>0){
                        System.out.println("数据删除成功!!");
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }finally{
                    sDao.closeStat(stat);
                    sDao.closeConn(conn);
                }
                
            }    
            
            
            //改正一个学生的信息
            public void updateStu(String stuNum){
            
                while(true){
                    System.out.println("-------------------------以下为改正的对象,您要选择的字母------------------------");
                    System.out.println("学号----------1");
                    System.out.println("名字----------2");
                    System.out.println("性别----------3");
                    System.out.println("年龄----------4");
                    System.out.println("成绩----------5");
                    System.out.println("操作完成,退出系统----------0");
                    
                    System.out.println("----------请选择您要改正的对象:");
                    int mark=scanner.nextInt();
                    StringBuffer sql=new StringBuffer("update student2 set");
                    switch(mark){
                    case 0:{
                        System.out.println("您将要退出整个系统!!");
                        System.exit(0);
                    }
                    case 1:{
                        System.out.println("请输出您将要改正的学号:");
                        String newStuNum=scanner.next();
                        sql.append(" stuNum='").append(newStuNum).append("' where stuNum='").append(stuNum).append("'");
                        break;
                        
                    }
                    case 2:{
                        System.out.println("请输出您将要改正的姓名:");
                        String newStuName=scanner.next();
                        sql.append(" name='").append(newStuName).append("' where stuNum='").append(stuNum).append("'");
                        break;
                    }
                    case 3:{
                        System.out.println("请输出您将要改正的性别:");
                        String newGender=scanner.next();
                        sql.append(" gender='").append(newGender).append("' where stuNum='").append(stuNum).append("'");
                        break;
                    }
                    case 4:{
                        System.out.println("请输出您将要改正的年龄:");
                        int newAge=scanner.nextInt();
                        sql.append(" age='").append(newAge).append("' where stuNum='").append(stuNum).append("'");
                        break;
                    }
                    case 5:{
                        System.out.println("请输出您将要改正的成绩:");
                        double newScore=scanner.nextDouble();
                        sql.append(" score=").append(newScore).append(" where stuNum='").append(stuNum).append("'");
                        break;
                    }
                    }
                    
                    try {
                        System.out.println(sql);
                        conn=sDao.getConnection();
                        stat=conn.createStatement();
                        if(stat.executeUpdate(sql.toString())>0){
                            System.out.println("学生的信息改正成功!!");
                        };
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                        System.out.println("ClassNotFoundException");
                    } catch (SQLException e) {
                        e.printStackTrace();
                        System.out.println("SQLException");
                    }finally{
                        sDao.closeStat(stat);
                        sDao.closeConn(conn);
                    }
                
                }
            }
            
            //查询学生的信息
            public List<Student> quertStu(Student stu) throws Exception {
                List<Student> stuList=new ArrayList<Student>();
                Student studentTemp=null;
                StringBuffer sql=new StringBuffer("select*from student2 where 1=1");
                if(stu.getStuNum()!=null&&" ".equals(stu.getStuNum())){
                    sql.append("and stuNum='").append(stu.getStuNum()).append("'");
                }
                if(stu.getName()!=null&&" ".equals(stu.getName())){
                    sql.append("and stuName='").append(stu.getName()).append("'");
                }
                if(stu.getGender()!=null&&" ".equals(stu.getGender())){
                    sql.append("and gender='").append(stu.getGender()).append("'");
                }
                if(" ".equals(stu.getAge())){
                    sql.append("and age=").append(stu.getAge());
                }
                if(" ".equals(stu.getScore())){
                    sql.append("and score=").append(stu.getScore());
                }
                
                try {
                    conn=sDao.getConnection();
                    stat=conn.createStatement();
                    rs=stat.executeQuery(sql.toString());
                    while(rs.next()){
                        studentTemp=new Student();
                        studentTemp.setStuNum(rs.getString(1));
                        studentTemp.setName(rs.getString(2));
                        studentTemp.setGender(rs.getString(3));
                        studentTemp.setAge(rs.getInt(4));
                        studentTemp.setScore(rs.getDouble(5));
                        
                        stuList.add(studentTemp);
                    }
                    return  (List<Student>) studentTemp;
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                } catch (SQLException e) {
                    e.printStackTrace();
                }finally{
                    
                    sDao.closeRs(rs);
                    sDao.closeStat(stat);
                    sDao.closeConn(conn);
                    return null;
                }
                
                
            }
            
            
            
            
        
        
    
    }

    4:重场戏,用户开始操作。

    package com.xt.java.base26;
    
    import java.util.Iterator;
    import java.util.Scanner;
    
    public class Main {
    
        @SuppressWarnings({ "null", "resource" })
        public static void main(String[] args) {
             UserAcess ua=new UserAcess();
             Scanner scanner=new Scanner(System.in);
            while(true){
                
                 System.out.println("----------------欢迎进入学生管理系统-------------------");
                 System.out.println("插入----------1");
                 System.out.println("删除----------2");
                 System.out.println("修改----------3");
                 System.out.println("查询----------4");
                 System.out.println("退出----------0
    
    ");
                 System.out.println("请选择您要进行的操作:");
                 int selectNum=scanner.nextInt();
                 switch(selectNum){
                 case 0:{
                     System.out.println("退出系统!!!");
                     System.exit(0);
                 }
                 case 1:{
                     ua.addStudent();
                     break;
                 }
                 case 2:{
                     System.out.println("请输入您要删除的学生的学号:");
                     String delStuNum=scanner.next();
                     ua.deleteStu(delStuNum);
                     break;
                 }
                 case 3:{
                     System.out.println("请输入您要改正的学生的学号:");
                     String updStuNum=scanner.next();
                     ua.updateStu(updStuNum);
                     break;
                 }
                 case 4:{
                     Student stu =null;
                     while(true){
                            System.out.println("-------------------------以下为你知道的对象,您要选择的字母------------------------");
                            System.out.println("学号----------1");
                            System.out.println("名字----------2");
                            System.out.println("性别----------3");
                            System.out.println("年龄----------4");
                            System.out.println("成绩----------5");
                            System.out.println("操作完成,退出系统----------0");
                            
                            System.out.println("----------请选择您要改正的对象:");
                            int mark=scanner.nextInt();
                            switch(mark){
                            case 0:{
                                System.out.println("退出系统!!");
                                System.exit(0);
                            }
                            case 1:{
                                System.out.println("请输入您知道的学号:");
                                String knowStuNum=scanner.next();
                                stu.setStuNum(knowStuNum);
                                break;
                            }
                            case 2:{
                                System.out.println("请输入您知道的姓名:");
                                String knowName=scanner.next();
                                stu.setName(knowName);
                                break;
                            }
                            case 3:{
                                System.out.println("请输入您知道的性别:");
                                String knowGender=scanner.next();
                                stu.setGender(knowGender);
                                break;
                            }
                            case 4:{
                                System.out.println("请输入您知道的年龄:");
                                int knowAge=scanner.nextInt();
                                stu.setAge(knowAge);
                                break;
                            }
                            case 5:{
                                System.out.println("请输入您知道的成绩:");
                                double knowScore=scanner.nextDouble();
                                stu.setScore(knowScore);
                                break;
                            }
                            
                            }
                    try {
                        Iterator iterator=ua.quertStu(stu).iterator();
                        if(iterator.hasNext()){
                            System.out.println(iterator.next());
                        }
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    break;
                 }
                 }
                 }
            }
    
        }
    
    }
  • 相关阅读:
    希望jQuery操作DOM文档,则必须确保DOM载入后开始执行
    Web全栈AngularJS
    Web全栈AngularJS
    Web全栈AngularJS
    KD-Tree
    KD-Tree
    KD-Tree
    KD-Tree
    如何提升自身实力
    如何提升自身实力
  • 原文地址:https://www.cnblogs.com/lyxcode/p/7405381.html
Copyright © 2020-2023  润新知