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. * 文件名: 学生成绩管理 ...
随机推荐
- java mybatis 动态sql
//-------------------------------查询-------------------------------------// <sql id="cmsGuest ...
- SQL中 Left Join 与 Right Join 与 Inner Join 与 Full Join的区别
首先看看Left Join 与Right Join 与 Inner Join 与 Full Join对表进行操作后得到的结果. 在数据库中新建两张表,并插入要测试的数据. 新建表: GO /***** ...
- iOS开发中NSLog输出格式大全
本文的内容是总结了一下iOS开发中NSLog输出格式大全,虽然比较基础,但有总结毕竟会各位正在学习iOS开发的朋友们一些小小的帮助. %@ 对象 %d, %i ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- CI框架多个表前缀,如何使用框架语句querybuilder
最近用CI框架遇到一个问题.2个前提条件: 1.数据库设计不规范,有的有表前缀(如:ck_table1),有的没有(如:table2)或者表前缀不一样: 2.数据库操作又想使用数据库操作语句query ...
- 连续最短路算法(Successive Shortest Path)(最小费用最大流)
#include <cstdio> #include <cstring> #include <queue> #include <vector> #inc ...
- linux上使用amoeba实现MySql集群,以及读写分离,主从复制
一.由于是MySql集群,所以就不可能只有一个MySql,需要多个MySql,具体安装步骤,可以参考http://www.cnblogs.com/ywzq/p/4882140.html这个地址进行安装 ...
- linux下配置redis
安装redis 1.下载文件 wget http://download.redis.io/releases/redis-2.8.12.tar.gz 2.解压文件 tar zxvf redis-2.8 ...
- Mac平台上OpenCV开发环境搭建
转载于:https://segmentfault.com/a/1190000000711132 linux 编译指定库.头文件的路径问题 http://blog.csdn.net/jiaweizou/ ...
- R----lubridata包介绍学习
lubridate包,非常强大,能够识别各种类型的日期.字符型和时间型数据,都是格式比较特别的你数据,在处理时,比较麻烦,但是有了lubridate这个包之后,时间处理变得非常简单,这个包函数命名简单 ...