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. * 文件名: 学生成绩管理 ...
随机推荐
- 大数阶乘(C/C++)
高精度的运算在Java中是很容易实现的,就像 a + b Problem 一样,因为Java提供了相应的类库和API:但是在 C/C++ 当中就没有那么现成的类和API来让你调用了.本着“自己动手,丰 ...
- Openstack的web管理端相关
openstack的web管理端技术方面要关注的问题. 同步?异步 先说浏览器的同步和异步,我们知道的浏览器可以使用ajax实现异步请求,就是浏览器在请求数据的时候,我们管理员还能对浏览器就行其他操作 ...
- [4] 智能指针boost::scoped_ptr
[1]boost::scoped_ptr简介 boost::scoped_ptr属于boost库,定义在namespace boost中,包含头文件#include <boost/scoped_ ...
- apache+php+mysql的配置(转载)
windows: 按http://jingyan.baidu.com/article/fcb5aff797ec41edaa4a71c4.html的安装 按http://www.jb51.net/art ...
- 编译boost
参数意义: --build-dir: 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了) --stagedir: 存放编译后库文件的路径,默认是stage --bui ...
- objective C 学习之02
1. 函数 -(void) HelloWorld:(BOOL)ishelloworld{ //干点啥 } 前面带有减号(-) 的方法为实例方法,必须使用类的实例才可以调用的.对应的有+号, 代表是类的 ...
- Prince2的七大原则(6)
Prince2科普_Prince2的七大原则(6) 按照惯例我们先来回顾一下,PRINCE2七大原则分别是指:持续的业务验证,经验学习,角色与责任,按阶段管理,例外管理,关注产品,剪裁. 今天讲第六个 ...
- Moving Tables(贪心或Dp POJ1083)
Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28304 Accepted: 9446 De ...
- python 学习笔记十 rabbitmq(进阶篇)
RabbitMQ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 ...
- MySQL 5.6 双机热备
目录: 1.说明 2.数据手工同步 3.修改主数据库配置文件 4.修改从数据库配置文件 5.主数据库添加备份用户 6.从数据库设置为Slave 7.验证 1.说明 1)数据库版本要高于5.1 2) ...