MySql&JDBC
项目:学生管理程序
项目要求:使用JDBC程序操作MySql数据库中的学生数据
实现功能:
1、操作界面的显示
2、管理员的登录
3、统计学生人数
4、查看学生名单
5、按照学号查询学生信息
6、按照学号修改学生信息
7、删除学生记录
8、新增年级记录
9、退出程序
项目程序虽然简单,但也涵盖了JDBC基本的知识点,独立完成这个项目,可以对Durid、DBUtils等JDBC常用工具有初步的认识。
!!!(需要打上mysql_jdbc、Durid等相应的jar包)!!!
首先对项目进行分层:
1、实体层:包含管理员类、学生类
2、数据操作层:封装DBUtils,提高代码复用率
3、服务层:
登录验证方法
返回学生人数方法
返回学生信息方法
按照查询修改学生信息方法
按照学号修改学生信息方法
删除学生方法
新增学生记录方法
4、界面层:包括服务层方法返回结果的展示
然后就要各层的实现:
1、实体层没什么好说的,就是建相应的类。
拿学生类举例,数据库中每条学生信息都包括学号、姓名等信息,所以学生类中也要有这些信息,然后就是补充相应的构造函数。
例如:
//拿学生类举个例子
public class Student {
private int num;
private String stuName;
private int grade;
private String birth;
public Student(int num, String stuName, int grade, String birth) {
super();
this.num = num;
this.stuName = stuName;
this.grade = grade;
this.birth = birth;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Student [num=" + num + ", stuName=" + stuName + ", grade=" + grade + ", birth=" + birth + "]";
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
}
2、数据操作层的实现主要是要封装DBUtils的几个方法,让服务层调用更加方便简单。
主要封装的有:
返回值是int型,代表sql语句增删改操作成功与否的update()方法
返回值是对象,代表sql查询语句一个结果的BeanHandler类,使用的是query()方法
返回值是多个对象,代表sql查询语句多个结果的BeanListHandler类,使用的是query()方法
返回值是Object,代表sql查询语句第一行第一列结果ScalarHandler类,使用的是query()方法
例如:
//先写出基础的数据操作类,再用相应类继承这个基础类
package com.bald.dao;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import com.bald.utils.JDBCUtilsByDruid;
/*
* 封装DBUtils方法
*/
public class BasicDao<T> {
/*
* 通用的增删改方法,针对于任何表
*/
public int update(String sql,Object...param) {