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();
} }
DAO JDBC 学生成绩管理系统的更多相关文章
- JSP+Servlet+JDBC+mysql实现的学生成绩管理系统
项目简介 项目来源于:https://gitee.com/zzdoreen/SSMS 本系统基于JSP+Servlet+Mysql 一个基于JSP+Servlet+Jdbc的学生成绩管理系统.涉及技术 ...
- 学生成绩管理系统(SSM+MySQL+JSP)
开发工具:Eclipse前端技术:基础:html+css+JavaScript框架:JQuery+H-ui后端技术:Spring+SpringMVC+mybatis模板引擎:JSP数据库:mysql ...
- 学生成绩管理系统 1.0(Java+MySql)
真难…… 数据库建立不会,中文编码不会,插入数据不会,删除不会…… Java读入数据不会……数据库连接不会…… 你也好意思说自己是学计算机的啊魂淡…… 我会慢慢写2.0,3.0版的……噗…… src/ ...
- JSP+SSM+Mysql实现的学生成绩管理系统
项目简介 项目来源于:https://gitee.com/z77z/StuSystem 本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统.主要实现的功能有教师管理.学生管理.课程管理.学生 ...
- Java项目:学生成绩管理系统(二)
学生成绩管理系统(二):项目介绍 一.设计要求: 1.1 简单的图形界面登录功能. 1.2 对数据库的的信息的查询功能. 1.3 对数据库的的信息的修改功能. 1.4 对数据库的的信息的删除功能. 1 ...
- Java项目:学生成绩管理系统(一)
学生成绩管理系统(一) 项目名称:学生成绩管理系统 项目需求分析(Need 需求): (1)该系统的用户分为教师和学生.教师的功能有:管理某一学生或课程的信息以及成绩,包括增.删.查.报表打印等:学生 ...
- 学生成绩管理系统[C]
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #d ...
- 【转】 [C/OC的那点事儿]NSMutableArray排序的三种实现(依赖学生成绩管理系统).
原文网址:http://blog.csdn.net/ministarler/article/details/17018839 c语言实现的学生成绩管理系统是面向过程的,而OC实现的学生成绩管理系统则是 ...
- 《C语言编写 学生成绩管理系统》
/* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名: 学生成绩管理 ...
随机推荐
- js弹出对话框的方法总结
九种js弹出对话框的方法总结,需要的朋友可以参考一下 [1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: <script LANGUAGE=" ...
- cpp异常详解
1. 异常介绍 在函数在执行过程中如果碰到对错误的处理可以有两种方式, 1. 返回错误,2. 使用异常. 如果作为函数的调用者想要知道具体的错误信息, 就需要维护一套错误列表, 或者用string类型 ...
- Qt之qt4.7 和qt 4.8.4 交叉实践
开发机环境搭建: 测试环境:CentOs7.1 Ubuntu 12.0.4 操作流程: 一.编译Qt4.7.0 1)CentOS上实践 1.tar xzvf qt-everywhere-openso ...
- 如何保存CONSOLE LOG
很早以前就想过问题,但因为我们一直有自动化程序去做,所以没仔细研究. 今天学习了一下,其实很简单,在sdsf.da 里面搜索master会看到下面这样一个TASK *MASTER* STC0000 ...
- Spring aop报错:com.sun.proxy.$Proxy cannot be cast to xxx
准备使用AOP记录所有NamedParameterJdbcTemplate操作数据时的所有日志,没想到出现这个错误,折腾了好久,终于找出原因 解决方案:在 aop-config配置添加上: proxy ...
- Hadoop实战5:MapReduce编程-WordCount统计单词个数-eclipse-java-windows环境
Hadoop研发在java环境的拓展 一 背景 由于一直使用hadoop streaming形式编写mapreduce程序,所以目前的hadoop程序局限于python语言.下面为了拓展java语言研 ...
- Linux下的PostgreSQL简单安装手册
1. 安装环境 linux版本: CentOS release 6.2 (Final) pg版本 : postgresql-9.5.0 2. pg数据库下载地址 --http ...
- 【转】eclipse安装SVN插件的两种方法
转载地址:http://welcome66.iteye.com/blog/1845176 eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录 ...
- [课程设计]Scrum 1.3 多鱼点餐系统开发进度(系统主界面框架&美化)
Scrum 1.3 多鱼点餐系统开发进度(系统主界面框架&美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...
- php数组插入数据库这个功能该怎么实现
原文网址:https://segmentfault.com/q/1010000004048449 比如一个数组$a=array("a"=>"1",&quo ...