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; } } } } } }