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

DAO JDBC 学生成绩管理系统的更多相关文章

  1. JSP+Servlet+JDBC+mysql实现的学生成绩管理系统

    项目简介 项目来源于:https://gitee.com/zzdoreen/SSMS 本系统基于JSP+Servlet+Mysql 一个基于JSP+Servlet+Jdbc的学生成绩管理系统.涉及技术 ...

  2. 学生成绩管理系统(SSM+MySQL+JSP)

    开发工具:Eclipse前端技术:基础:html+css+JavaScript框架:JQuery+H-ui后端技术:Spring+SpringMVC+mybatis模板引擎:JSP数据库:mysql ...

  3. 学生成绩管理系统 1.0(Java+MySql)

    真难…… 数据库建立不会,中文编码不会,插入数据不会,删除不会…… Java读入数据不会……数据库连接不会…… 你也好意思说自己是学计算机的啊魂淡…… 我会慢慢写2.0,3.0版的……噗…… src/ ...

  4. JSP+SSM+Mysql实现的学生成绩管理系统

    项目简介 项目来源于:https://gitee.com/z77z/StuSystem 本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统.主要实现的功能有教师管理.学生管理.课程管理.学生 ...

  5. Java项目:学生成绩管理系统(二)

    学生成绩管理系统(二):项目介绍 一.设计要求: 1.1 简单的图形界面登录功能. 1.2 对数据库的的信息的查询功能. 1.3 对数据库的的信息的修改功能. 1.4 对数据库的的信息的删除功能. 1 ...

  6. Java项目:学生成绩管理系统(一)

    学生成绩管理系统(一) 项目名称:学生成绩管理系统 项目需求分析(Need 需求): (1)该系统的用户分为教师和学生.教师的功能有:管理某一学生或课程的信息以及成绩,包括增.删.查.报表打印等:学生 ...

  7. 学生成绩管理系统[C]

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #d ...

  8. 【转】 [C/OC的那点事儿]NSMutableArray排序的三种实现(依赖学生成绩管理系统).

    原文网址:http://blog.csdn.net/ministarler/article/details/17018839 c语言实现的学生成绩管理系统是面向过程的,而OC实现的学生成绩管理系统则是 ...

  9. 《C语言编写 学生成绩管理系统》

    /* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名: 学生成绩管理 ...

随机推荐

  1. Mssql Server如何修改列名

    exec sp_rename '表明.原列名','新列名','column';

  2. An internal error occurred during: "Building workspace".

    当在eclipse中的web工程中增加了extjs4,出现An internal error occurred during: "Building workspace". Java ...

  3. Tomcat常见的内存溢出,以及解决方法

    一.常见的三种内存溢出错误: 1.java.lang.OutOfMemoryError:java heap space    ====JVM Heap(堆)溢出 JVM再启动的时候回自动设置JVM H ...

  4. iOS-图文表并茂,手把手教你GCD

    前言 对初学者来说,GCD似乎是一道迈不过去的坎,很多人在同步.异步.串行.并行和死锁这几个名词的漩涡中渐渐放弃治疗.本文将使用图文表并茂的方式给大家形象地解释其中的原理和规律. 线程.任务和队列的概 ...

  5. JAVA线程锁-读写锁

    JAVA线程锁,除Lock的传统锁,又有两种特殊锁,叫读写锁ReadWriteLock 其中多个读锁不互斥,读锁和写锁互斥,写锁和写锁互斥 例子: /** * java线程锁分为读写锁 ReadWri ...

  6. JSP 基础语法

    1.JSP简介 含义:是运行在服务器端的java页面,是动态网页技术,开发时采用html嵌套java代码的方式实现的 JSP的执行流程是什么? 翻译阶段:web服务器收到jsp请求时,把jsp文件翻译 ...

  7. java 代理模式一: 静态代理

    代理模式: 代理模式的作用:为其他对象提供一种代理以控制对 特定对象  的访问. 某种情况下,一个客户不想或者直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用:通过代理对象引用. ...

  8. Codeforces Round #383 (Div. 2) A,B,C,D 循环节,标记,暴力,并查集+分组背包

    A. Arpa’s hard exam and Mehrdad’s naive cheat time limit per test 1 second memory limit per test 256 ...

  9. openurl 跳转

    1.拨打电话: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://68979"]]; ...

  10. wenti

    No apport report written because MaxReports is reached already                                       ...