DAO JDBC 学生成绩管理系统
1:student、course类
package JDBCU; public class Student { private String no; private String name; public String getNo() { return no; } public void setNo(String no) { this.no = no; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package JDBCU; public class Course { private String no; private String cname; private float grades; public String getNo() { return no; } public void setNo(String no) { this.no = no; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public float getGrades() { return grades; } public void setGrades(float grades) { this.grades = grades; } }
2 公共连接类
package JDBCU; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnection { private static final String DBDRIVER="com.mysql.jdbc.Driver"; public static final String DBURL="jdbc:mysql://localhost:3306/stuma"; public static final String DBNAME="root"; public static final String DBPWD="root"; private Connection conn; public DatabaseConnection(){ try { Class.forName(DBDRIVER); this.conn=DriverManager.getConnection(DBURL,DBNAME,DBPWD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); } } public Connection getconnection(){ return this.conn; } public void close(){ if(this.conn!=null){ try { this.conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
3、接口
package JDBCU; import java.util.List; public interface IScoreDao { public Student findstu(String no); public boolean updatestu(String no,String name); public Course findc(String no,String cname); public List<Course> findallc(String keyword); public boolean addc(Course course); public boolean delc(String no,String cname); public boolean updatec(String no, String cname, float grades); }
4、接口的实现
package JDBCU; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class ISocreServiceImpl implements IScoreDao { private Connection conn=null; private PreparedStatement pstmt=null; public ISocreServiceImpl(Connection conn) { this.conn = conn; } @Override public Student findstu(String no) { Student student=null; String sql="select * from student where no=?"; try { this.pstmt=this.conn.prepareStatement(sql); this.pstmt.setString(1,no); ResultSet rs= this.pstmt.executeQuery(); if(rs.next()){ student=new Student (); student.setNo(rs.getString(1)); student.setName(rs.getString(2)); } this.pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } return student; } @Override public boolean updatestu(String no, String name) { boolean flag=false; String sql="update student set no=?,name=?"; try { this.pstmt=this.conn.prepareStatement(sql); this.pstmt.setString(1,no); this.pstmt.setString(2, name); if(this.pstmt.executeUpdate()>0) flag=true; this.pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } return flag; } @Override public Course findc(String no, String cname) { Course course=null; String sql="select * from course where no=? and cname=?"; try { this.pstmt=this.conn.prepareStatement(sql); this.pstmt.setString(1,no); this.pstmt.setString(2,cname); ResultSet rs= this.pstmt.executeQuery(); if(rs.next()){ course=new Course (); course.setNo(rs.getString(1)); course.setCname(rs.getString(2)); course.setGrades(rs.getFloat(3)); } this.pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } return course; } @Override public List<Course> findallc(String keyword) { List<Course>all=new ArrayList<Course>(); String sql="select * from course"; try { this.pstmt=this.conn.prepareStatement(sql); ResultSet rs= this.pstmt.executeQuery(); Course course=null; while(rs.next()){ course=new Course (); course.setNo(rs.getString(1)); course.setCname(rs.getString(2)); course.setGrades(rs.getFloat(3)); all.add(course); } this.pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } return all; } @Override public boolean addc(Course course) { boolean flag=false; String sql="Insert into course(no,cname,grades)values(?,?,?)"; try{ this.pstmt=this.conn.prepareStatement(sql); this.pstmt.setString(1,course.getNo()); this.pstmt.setString(2, course.getCname()); this.pstmt.setFloat(3, course.getGrades()); if(this.pstmt.executeUpdate()>0) flag=true; this.pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } return flag; } @Override public boolean delc(String no, String cname) { boolean flag=false; String sql="delete from course where no=? and cname=?"; try{ this.pstmt=this.conn.prepareStatement(sql); this.pstmt.setString(1,no); this.pstmt.setString(2,cname); if(this.pstmt.executeUpdate()>0) flag=true; this.pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } return flag; } @Override public boolean updatec(String no, String cname, float grades) { boolean flag=false; try { String sql2="update course set no=?,cname=?,grades=? where no=? and cname=?"; this.pstmt=this.conn.prepareStatement(sql2); this.pstmt.setString(1,no); this.pstmt.setString(2, cname); this.pstmt.setFloat(3, grades); this.pstmt.setString(4,no); this.pstmt.setString(5, cname); if(this.pstmt.executeUpdate()>0) flag=true; this.pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } return flag; } }
5、回调
package JDBCU; import java.util.List; public class ISocreDaoImpl implements IScoreDao { private DatabaseConnection dbc=null; private ISocreServiceImpl dao=null; public ISocreDaoImpl() { this.dbc = new DatabaseConnection() ; this.dao = new ISocreServiceImpl(this.dbc.getconnection()); } @Override public Student findstu(String no) { Student student=null; try { student=this.dao.findstu(no); } catch (Exception e) { }finally{ dbc.close(); } return student; } @Override public boolean updatestu(String no, String name) { boolean flag=false; try { flag=this.dao.updatestu(no,name); } catch (Exception e) { }finally{ dbc.close(); } return flag; } @Override public Course findc(String no, String cname) { Course course=null; try { course=this.dao.findc(no,cname); } catch (Exception e) { }finally{ dbc.close(); } return course; } @Override public List<Course> findallc(String keyword) { List<Course> all=null; try { all=this.dao.findallc(keyword); } catch (Exception e) { }finally{ dbc.close(); } return all; } @Override public boolean addc(Course course) { boolean flag=false; try { if(this.dao.findc(course.getNo(),course.getCname())==null) flag=this.dao.addc(course); } catch (Exception e) { }finally{ dbc.close(); } return flag; } @Override public boolean delc(String no, String cname) { boolean flag=false; try { flag=this.dao.delc(no,cname); } catch (Exception e) { }finally{ dbc.close(); } return flag; } @Override public boolean updatec(String no, String cname, float grades) { boolean flag=false; try { flag=this.dao.updatec(no,cname,grades); } catch (Exception e) { }finally{ dbc.close(); } return flag; } }
6、测试类以及菜单
package JDBCU; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class ISocreTest { public static void main(String[] args) { menu(); } public static void menu() { System.out.println("******************学生个人成绩管理系统***********"); System.out.printf("\n", null); System.out.println(" 1、成绩管理"); System.out.println(" 2、学生管理"); System.out.println(" 3、退出系统"); System.out.printf("\n", null); System.out.println("************************************************"); System.out.println("请输入功能编号(1-3):"); Scanner r0 = new Scanner(System.in); int i = r0.nextInt(); switch(i){ case 1: grademenu(); break; case 2: stumenu(); break; case 3: System.out.println("再见!"); break; default: System.out.println("请输入数字1到3"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } menu(); break; } r0.close(); } private static void grademenu() { System.out.println("******************学生个人成绩系统***************"); System.out.printf("\n", null); System.out.println(" 1、增加成绩"); System.out.println(" 2、删除成绩"); System.out.println(" 3、修改成绩"); System.out.println(" 4、显示成绩"); System.out.println(" 5、汇总成绩"); System.out.println(" 6、返回上一系统"); System.out.printf("\n", null); System.out.println("************************************************"); System.out.println("请输入功能编号(1-6):"); Course course=new Course(); Scanner r1 = new Scanner(System.in); int s = r1.nextInt(); switch(s){ case 1: try { System.out.println("请输入信息,输入格式为学号,课程名。如:201220201032 math"); Scanner r2 = new Scanner(System.in); String s1 =r2.nextLine(); String[] additem=s1.split(" "); if(additem.length==2){ course.setNo(additem[0]); course.setCname(additem[1]); } System.out.println("请输入分数"); float s2=r1.nextFloat(); course.setGrades(s2); new ISocreDaoImpl().addc(course); } catch (Exception e1) { e1.printStackTrace(); } main(null); break; case 2: try { System.out.println("请输入信息,输入格式为学号,课程名。如:201220201032 math"); Scanner r3 = new Scanner(System.in); String s3 =r3.nextLine(); String[] additem1=s3.split(" "); if(additem1.length==2){ new ISocreDaoImpl().delc(additem1[0],additem1[1]); } } catch (Exception e1) { e1.printStackTrace(); } main(null); break; case 3: try { System.out.println("请输入信息,输入格式为学号,课程名。如:201220201032 math"); Scanner r4 = new Scanner(System.in); String s4 =r4.nextLine(); System.out.println("请输入新的分数"); Scanner r5 = new Scanner(System.in); float s5=r5.nextFloat(); String[] additem2=s4.split(" "); if(additem2.length==2){ if( new ISocreDaoImpl().findc(additem2[0],additem2[1])!=null) new ISocreDaoImpl().updatec(additem2[0],additem2[1],s5); } } catch (Exception e1) { e1.printStackTrace(); } try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } main(null); break; case 4: System.out.println("请输入信息,输入格式为学号,课程名。如:201220201032 math"); Scanner r6 = new Scanner(System.in); String s6 =r6.nextLine(); String[] additem3=s6.split(" "); if(additem3.length==2){ Course r= new ISocreDaoImpl().findc(additem3[0],additem3[1]); if(r!=null){ System.out.println(r.getNo()+" "+r.getCname()+" "+r.getGrades()); } } try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } main(null); break; case 5: List<Course> all=new ISocreDaoImpl().findallc(" "); Iterator<Course> iter=all.iterator(); while(iter.hasNext()){ course=iter.next(); System.out.println(course.getNo()+" "+course.getCname()+" "+course.getGrades()); } try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } main(null); break; case 6: menu(); break; default: System.out.println("请输入数字1到6"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } stumenu(); break; } r1.close(); } private static void stumenu() { System.out.println("******************学生个人成绩管理系统***********"); System.out.printf("\n", null); System.out.println(" 1、显示学生信息"); System.out.println(" 2、修改学生信息"); System.out.println(" 3、返回上一系统"); System.out.printf("\n", null); System.out.println("************************************************"); System.out.println("请输入功能编号(1-3):"); Scanner r1 = new Scanner(System.in); int t = r1.nextInt(); switch(t){ case 1: System.out.println("请输入学号.如:201220201032"); Scanner r2 = new Scanner(System.in); String s2=r2.nextLine(); Student r= new ISocreDaoImpl().findstu(s2); if(r!=null){ System.out.println(r.getNo()+" "+r.getName()); } try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } main(null); break; case 2: try { System.out.println("请输入学号.如:201220201032"); Scanner r3 = new Scanner(System.in); String s3=r3.nextLine(); if( new ISocreDaoImpl().findstu(s3)!=null) { System.out.println("请输入信息,输入格式为学号,姓名。如:201220201032 zhang"); Scanner r4 = new Scanner(System.in); String s4 =r4.nextLine(); String[] additem=s4.split(" "); if(additem.length==2){ new ISocreDaoImpl().updatestu(additem[0],additem[1]); } } } catch (Exception e1) { e1.printStackTrace(); } //延时 try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } main(null); break; case 3: menu(); break; default: System.out.println("请输入数字1到3"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } stumenu(); break; } r1.close(); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。