/**
*日期:2016-11-05
*需求:通过对数据库操作,完成管理员的注册和登录,实现简单的对员
*工的增、删、改、查
*表:emp表、admin表
*/
com.bz.entity包
//admin类
public class Admin{
private int adminid;
private String adminname;
private String adminpassword;
public String getAdminname() {
return adminname;
}
public void setAdminname(String adminname) {
this.adminname = adminname;
}
public String getAdminpassword() {
return adminpassword;
}
public void setAdminpassword(String adminpassword) {
this.adminpassword = adminpassword;
}
public int getAdminid() {
return adminid;
}
public void setAdminid(int adminid) {
this.adminid = adminid;
}
//无参的构造函数
public Admin() {
}
有参的构造函数
public Admin(String adminname, String adminpassword) {
this.adminname = adminname;
this.adminpassword = adminpassword;
}
}
//Emp类
public class Emp{
private int empid;
private String empname;
private String emppassword;
private String empsex;
private int empage;
private int empsal;
public int getEmpid() {
return empid;
}
public void setEmpid(int empid) {
this.empid = empid;
}
public String getEmpname() {
return empname;
}
public void setEmpname(String empname) {
this.empname = empname;
}
public String getEmppassword() {
return emppassword;
}
public void setEmppassword(String emppassword) {
this.emppassword = emppassword;
}
public String getEmpsex() {
return empsex;
}
public void setEmpsex(String empsex) {
this.empsex = empsex;
}
public int getEmpage() {
return empage;
}
public void setEmpage(int empage) {
this.empage = empage;
}
public int getEmpsal() {
return empsal;
}
public void setEmpsal(int empsal) {
this.empsal = empsal;
}
//有参的构造函数
public Emp(String empname, String emppassword, String empsex, int empage,
int empsal) {
this.empname = empname;
this.emppassword = emppassword;
this.empsex = empsex;
this.empage = empage;
this.empsal = empsal;
}
//无参的构造函数
public Emp() {}
//有参的构造函数
public Emp(int empid, String empname, String emppassword, String empsex,
int empage, int empsal) {
this.empid = empid;
this.empname = empname;
this.emppassword = emppassword;
this.empsex = empsex;
this.empage = empage;
this.empsal = empsal;
}
}
com.bz.dao包
public interface AdminDao {
public Admin login(String adminname,String adminpassword);
public int register(Admin admin);
}
public interface EmpDao {
public int addEmp(Emp emp);
public int delEmp(int empid);
public int updEmp(Emp emp);
public List checkAllEmp();
public int getCount();
public List checkByPage(int pageIndex,int pageSize);
public int getTotolPage(int count,int pageSize);
}
com.bz.dao.impl包
public class BaseDao {
Connection conn = null;
PreparedStatement ptmt = null;
ResultSet rs = null;
/**
* 加载驱动和创建连接
*
* @return 连接哪个数据库通道对象
*/
protected Connection getConnection() {
try {
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager
.getConnection(“jdbc:mysql://localhost:3306/jsp?characterEncoding=utf-8”,”root”,”abc123”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 增删改业务实现使用JDBC方法
*
* @param sql增删改语句
* @param params
* sql语句的参数(?占位符的具体值)
* @return 是否更新成功(0失败 大于0成功)
*/
protected int executeUpdate(String sql, Object[] params) {
int flag = -1;
conn = this.getConnection();
try {
ptmt = conn.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
ptmt.setObject(i + 1, params[i]);
}
}
flag = ptmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeAll();
}
return flag;
}
/**
* 查看业务实现使用JDBC方法
*
* @param sql
* 查看sql语句
* @param params
* sql语句的参数(?占位符的具体值)
* @return 查询结果集 注意:此处绝对不能进行关闭操作,因为我结果集里面的数据并没有使用
*/
protected ResultSet executeQuery(String sql, Object[] params) {
conn = this.getConnection();
try {
ptmt = conn.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
ptmt.setObject(i + 1, params[i]);
}
}
rs = ptmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/**
* 查询唯一结果集
*
* @param sql
* @param params
* @return 查询结果
*/
protected Object executeQueryOne(String sql, Object[] params) {
Object obj = null;
conn = this.getConnection();
try {
ptmt = conn.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
ptmt.setObject(i + 1, params[i]);
}
}
rs = ptmt.executeQuery();
if (rs.next()) {
obj = rs.getObject(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeAll();
}
return obj;
}
/**
* 关闭JDBC操作 关闭3个对象 先使用的后关闭 进行为空判断 有则关
*/
protected void closeAll() {
try {
if (rs != null) {
rs.close();
}
if (ptmt != null) {
ptmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public class AdminDaoImpl extends BaseDao implements AdminDao {
public Admin login(String adminname, String adminpassword) {
Admin admin=null;
String sql=”select * from admin where adminname=? and adminpassword=?”;
Object []params=new Object[]{adminname,adminpassword};
super.rs=super.executeQuery(sql, params);
try {
if(super.rs.next()){
admin=new Admin(rs.getString(2),rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
super.closeAll();
}
return admin;
}
public int register(Admin admin) {
String sql=”insert into admin(adminname,adminpassword) values(?,?)”;
Object[]params=new Object[]{admin.getAdminname(),admin.getAdminpassword()};
int num=super.executeUpdate(sql, params);
return num;
}
}
public class EmpDaoImpl extends BaseDao implements EmpDao {
public int addEmp(Emp emp) {
String sql=”insert into emp(empname,emppassword,empsex,empage,empsal) values(?,?,?,?,?)”;
Object []params=new Object[]{emp.getEmpName(),emp.getEmpPassword(),emp.getEmpSex(),emp.getEmpAge(),emp.getEmpSal()};
int num=super.executeUpdate(sql, params);
return num;
}
public int delEmp(int empid) {
String sql=”delete from emp where empid=?”;
Object []params=new Object[]{empid};
int num=super.executeUpdate(sql, params);
return num;
}
public int updEmp(Emp emp) {
String sql=”update emp set empname=?,emppassword=?,empsex=?,empage=?,empsal=? where empid=?”;
Object []params=new Object[]{emp.getEmpName(),emp.getEmpPassword(),emp.getEmpSex(),emp.getEmpAge(),emp.getEmpSal(),emp.getEmpID()};
int num=super.executeUpdate(sql, params);
return num;
}
public List checkAllEmp() {
List emps=new ArrayList();
Emp emp=null;
String sql=”select * from emp”;
super.rs=super.executeQuery(sql, null);
try {
while(rs.next()){
emp=new Emp(rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6));
emp.setEmpID(rs.getInt(1));
emps.add(emp);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return emps;
}
public int getCount() {
String sql=”select count(*)from emp”;
return Integer.parseInt((super.executeQueryOne(sql, null)).toString());
}
public List checkByPage(int pageIndex, int pageSize) {
List emps=new ArrayList();
Emp emp=null;
int start=(pageIndex-1)*pageSize;
int end=pageSize;
String sql=”select * from emp limit ?,?”;
Object []params=new Object[]{start,end};
super.rs=super.executeQuery(sql, params);
try {
while(rs.next()){
emp=new Emp(rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6));
emp.setEmpID(rs.getInt(1));
emps.add(emp);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return emps;
}
public int getTotolPage(int count, int pageSize) {
int totolPage=(count%pageSize==0)?(count/pageSize):(count/pageSize+1);
return totolPage;
}
}
}
com.bz.biz包
public interface EmpBiz {
public boolean addEmp(Emp emp);
public boolean delEmp(int empid);
public boolean updEmp(Emp emp);
public List checkAllEmp();
public int getCount();
public List checkByPage(int pageIndex,int pageSize);
public int getTotolPage(int count,int pageSize);
}
public interface AdminBiz {
public boolean login(String adminname,String adminpassword);
public boolean register(Admin admin);
}
com.bz.biz.impl包
public class EmpBizImpl implements EmpBiz {
EmpDao empDao=new EmpDaoImpl();
public boolean addEmp(Emp emp) {
if(empDao.addEmp(emp)>0){
return true;
}else{
return false;
}
}
public boolean delEmp(int empid) {
if(empDao.delEmp(empid)>0){
return true;
}else{
return false;
}
}
public boolean updEmp(Emp emp) {
if(empDao.updEmp(emp)>0){
return true;
}else{
return false;
}
}
public List checkAllEmp() {
return empDao.checkAllEmp();
}
public int getCount() {
return empDao.getCount();
}
public List checkByPage(int pageIndex, int pageSize) {
// TODO Auto-generated method stub
return empDao.checkByPage(pageIndex, pageSize);
}
public int getTotolPage(int count, int pageSize) {
// TODO Auto-generated method stub
return empDao.getTotolPage(count, pageSize);
}
}
public class AdminBizImpl implements AdminBiz {
AdminDao adminDao=new AdminDaoImpl();
public boolean login(String adminname, String adminpassword) {
if(adminDao.login(adminname, adminpassword)!=null){
return true;
}else{
return false;
}
}
public boolean register(Admin admin) {
if(adminDao.register(admin)>0){
return true;
}else{
return false;
}
}
}
com.bz.ui包
public class UIManager {
Scanner scan=new Scanner(System.in);
AdminBiz adminBiz=new AdminBizImpl();
EmpBiz empBiz=new EmpBizImpl();
/**
* admin主页面
*/
public void mainAdminMenu() {
System.out.println(“**欢迎来到学生管理系统**”);
System.out.println(“\t1.登陆”);
System.out.println(“\t2.注册”);
System.out.println(“\t3.退出”);
System.out.println("请选择输入:");
int input = scan.nextInt();
switch (input) {
case 1:
this.loginMenu();
break;
case 2:
this.registerMenu();
break;
case 3:
System.exit(1);
break;
default:
break;
}
}
/**
* admin登录界面
*/
public void loginMenu(){
System.out.print("请输入用户名:");
String adminname = scan.next();
System.out.print("请输入密 码:");
String adminpassword = scan.next();
boolean flag = adminBiz.login(adminname, adminpassword);
if (flag) {
System.out.println("登陆成功");
this.secondMenu();
} else {
System.out.println("登陆失败");
}
}
/**
* admin注册页面
*/
public void registerMenu(){
System.out.println("请输入用户名:");
String adminname=scan.next();
System.out.println("请输入密 码:");
String adminpassword=scan.next();
Admin admin=new Admin(adminname,adminpassword);
boolean flag=adminBiz.register(admin);
if(flag){
System.out.println("注册成功");
}else{
System.out.println("注册失败");
}
}
/**
* 返回上一级菜单
*/
public void returnSecMenu(){
System.out.println("输入0返回上一级,其他任意键退出系统");
int num=scan.nextInt();
switch(num){
case 0:
this.secondMenu();
break;
default:
System.exit(1);
break;
}
}
/**
* admin的二级菜单
*/
public void secondMenu() {
System.out.println("************欢迎来到学生管理系统************");
System.out.println("\t1.增加员工信息");
System.out.println("\t2.删除员工信息");
System.out.println("\t3.修改员工信息");
System.out.println("\t4.查看员工信息");
System.out.println("\t5.分页查询信息");
System.out.print("请选择输入:");
int input = scan.nextInt();
switch (input) {
case 1:
this.addEmp();
this.returnSecMenu();
break;
case 2:
this.delEmp();
this.returnSecMenu();
break;
case 3:
this.updEmp();
this.returnSecMenu();
break;
case 4:
this.checkAllEmp();
this.returnSecMenu();
break;
case 5:
this.checkByPage();
this.returnSecMenu();
break;
default:
System.exit(1);
break;
}
}
/**
* 添加员工信息
*/
public void addEmp(){
System.out.println("请输入员工姓名:");
String empname=scan.next();
System.out.println("请输入员工密码:");
String emppassword=scan.next();
System.out.println("请输入员工性别:");
String empsex=scan.next();
System.out.println("请输入员工年龄:");
int empage=scan.nextInt();
System.out.println("请输入员工工资:");
int empsal=scan.nextInt();
Emp emp=new Emp(empname,emppassword,empsex,empage,empsal);
boolean flag=empBiz.addEmp(emp);
if(flag){
System.out.println("添加成功");
}else{
System.out.println("添加失败。");
}
}
/**
* 删除员工信息
*/
public void delEmp(){
System.out.println("请输入要删除的员工ID:");
int empID=scan.nextInt();
boolean flag=empBiz.delEmp(empID);
if(flag){
System.out.println("删除成功。");
}else{
System.out.println("删除失败");
}
}
/**
* 修改员工信息
*/
public void updEmp(){
Emp emp=new Emp();
System.out.println("请输入要修改的员工ID:");
int empid=scan.nextInt();
emp.setEmpID(empid);
System.out.println("请输入员工姓名:");
String empname=scan.next();
emp.setEmpName(empname);
System.out.println("请输入员工密码:");
String emppassword=scan.next();
emp.setEmpPassword(emppassword);
System.out.println("请输入员工性别:");
String empsex=scan.next();
emp.setEmpSex(empsex);
System.out.println("请输入员工年龄:");
int empage=scan.nextInt();
emp.setEmpAge(empage);
System.out.println("请输入员工工资:");
int empsal=scan.nextInt();
emp.setEmpSal(empsal);
boolean flag=empBiz.updEmp(emp);
if(flag){
System.out.println("添加成功");
}else{
System.out.println("添加失败。");
}
}
/**
* 查看所有员工信息
*/
public void checkAllEmp(){
List<Emp> emps = empBiz.checkAllEmp();
System.out.println("工号\t" + "姓名\t" + "密码\t"+"性别\t"+"年龄\t"+"工资");
for (Emp emp : emps) {
System.out.println(emp.getEmpID()+"\t"+emp.getEmpName()+"\t"+emp.getEmpPassword()+"\t"+emp.getEmpSex()+"\t"+emp.getEmpAge()+"\t"+emp.getEmpSal());
}
}
/**
* 分页查询员工信息
*/
public void checkByPage(){
System.out.println("员工总人数:" + empBiz.getCount());
System.out.print("每页显示个数:");
int pageSize = scan.nextInt();
System.out.println("输入您要显示的页码:");
int pageIndex = scan.nextInt();
List<Emp> empList = empBiz.checkByPage(pageIndex, pageSize);
System.out.println("工号\t" + "姓名\t" + "密码\t"+"性别\t"+"年龄\t"+"工资");
for (Emp emp : empList) {
System.out.println(emp.getEmpID()+"\t"+emp.getEmpName()+"\t"+emp.getEmpPassword()+"\t"+emp.getEmpSex()+"\t"+emp.getEmpAge()+"\t"+emp.getEmpSal());
}
System.out.println("【"+pageIndex+"/"+empBiz.getTotolPage(empBiz.getCount(), pageSize)+"】");
}
}
com.bz.test包
public static void main(String[] args) {
UIManager uim=new UIManager();
uim.mainAdminMenu();
}
以上为简单员工管理系统
分为三层:dao层、biz层、ui层
dao层主要负责发送sql语句,连接数据库,与数据库进行交互。
biz层进行逻辑判断,将dao层的sql语句查询、增删改结构进行处理。
ui层发送参数,将参数交给biz层进行判断。
三层之间联系在一起,又相对分离,有利于系统的维护与修改。
体现了面向对象的思想。