天天看点

Java 项目分层

三层结构:表现层(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);
	}
}