三层结构:表现层(View) 业务层(Service) 持久层(DAO:Data Access Object数据访问)
可以使用包进行项目分层
项目的流程:
1. 根据需求来确定数据库中的表(PowerDesigner)
2. 根据表来创建Java bean(几个表几个bean)
3. 创建DAO层,作用对数据库进行操作(相当于对bean的操作)
DAO:也是一种设计模式,要依赖接口(interface bean名Dao)
DBUtil:工具
- Bean:
package bean;
public class Emp {
private int empno;
private String ename;
private String job;
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}
- DAO
package dao;
import java.util.List;
import bean.Emp;
public interface EmpDao {
public boolean addEmp(Emp emp);
/**
* 添加员工信息
*/
public List<Emp> getQueryAll();
/**
* 根据ID查员工信息
*/
public Emp getQueryById(int id);
/**
* 根据ID删除员工信息
*/
public boolean delete(int id);
/**
* 删除员工信息
*/
public boolean updateEmp(Emp emp);
/**
* 修改员工信息
*/
}
- DAOIMPL
package dao.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import bean.Emp;
import dao.EmpDao;
import dbu.DBUtils;
public class EmpDaoImpl implements EmpDao {
DBUtils dbUtils = new DBUtils();
public boolean addEmp(Emp emp) {
int i = 0;
try {
dbUtils.getConnection();
i = dbUtils.update("insert into Emp(Empno, Ename, Job) values(" + emp.getEmpno() + ", '" + emp.getEname()
+ "', '" + emp.getJob() + "')");
dbUtils.closed();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
}
return i == 1;
}
@Override
public List<bean.Emp> getQueryAll() {
List<Emp> list = new ArrayList<>();
try {
dbUtils.getConnection();
ResultSet rSet = dbUtils.query("select * from emp");
while (rSet.next()) {
Emp emp = new Emp();
emp.setEmpno(rSet.getInt("empno"));
emp.setEname(rSet.getString("ename"));
emp.setJob(rSet.getString("job"));
list.add(emp);
}
dbUtils.closed();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
@Override
public bean.Emp getQueryById(int id) {
Emp emp = new Emp();
try {
dbUtils.getConnection();
ResultSet resultSet = dbUtils.query("select * from Emp where empno = " + id + " ");
while (resultSet.next()) {
emp.setEmpno(resultSet.getInt("empno"));
emp.setEname(resultSet.getString("ename"));
emp.setJob(resultSet.getString("job"));
}
dbUtils.closed();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return emp;
}
@Override
public boolean delete(int id) {
int i = 0;
try {
dbUtils.getConnection();
dbUtils.update("delete from Emp where empno = " + id + " ");
dbUtils.closed();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return i == 1;
}
@Override
public boolean updateEmp(Emp emp) {
int i = 0;
try {
dbUtils.getConnection();
i = dbUtils.update("update emp set ename = '" + emp.getEname() + "' ,job = '" + emp.getJob()
+ "' where empno = " + emp.getEmpno() + " ");
dbUtils.closed();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return i == 1;
}
}
- SERVICE
package service;
public interface EmpService {
/**
* 验证登录
*
*/
public boolean isCheckLogin(String username, String password);
}
- SERVICEIMPL
package service.impl;
import service.EmpService;
public class EmpServiceImpl implements EmpService{
@Override
public boolean isCheckLogin(String username, String password) {
// TODO Auto-generated method stub
return false;
}
}
- TEST
package view;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import bean.Emp;
import dao.impl.EmpDaoImpl;
public class Test {
public static void main(String[] args) {
EmpDaoImpl empDaoImpl = new EmpDaoImpl();
Scanner input = new Scanner(System.in);
Emp emp = new Emp();
boolean i;
System.out.print("input info.(Empno, Ename, Job) which you want to add:");
emp.setEmpno(input.nextInt());
emp.setEname(input.next());
emp.setJob(input.next());
i = empDaoImpl.addEmp(emp);
System.out.println(i);
System.out.println("-------------------------------------------------------------------");
List<Emp> list = new ArrayList<>();
list = empDaoImpl.getQueryAll();
for (Emp emp2 : list) {
System.out.println(emp2.getEmpno()+"\t"+emp2.getEname()+"\t"+emp2.getJob());
}
System.out.println("-------------------------------------------------------------------");
System.out.print("input empno which you want to check:");
emp = empDaoImpl.getQueryById(input.nextInt());
System.out.println(emp.getEmpno()+"\t"+emp.getEname()+"\t"+emp.getJob());
System.out.println("-------------------------------------------------------------------");
System.out.print("input empno you want to delete:" );
empDaoImpl.delete(input.nextInt());
System.out.println("-------------------------------------------------------------------");
System.out.println("input info.(Empno, Ename, Job) which you want to update:");
emp.setEmpno(input.nextInt());
emp.setEname(input.next());
emp.setJob(input.next());
i = empDaoImpl.updateEmp(emp);
System.out.println(i);
}
}