7.分层开发思想(MVC设计模式)

按照程序的逻辑(职能)划分:

  • dao:数据访问层:数据库的增删该查
  • service:业务逻辑层:逻辑判断:if 排序等
  • controller:调度:调用哪一个service
  • view:视图 接收输入 展示数据

在这里插入图片描述

MVC 设计模式

 Model:模型层  dao 数据访问层
               service  业务逻辑层

 Controller :控制器  调度

 View:视图层  控制台  html  jsp页面 

例子:

pojo

package cn.cc.mvc.pojo;

public class Dept {
	private String deptno;
	private String dname;
	private String loc;
	public String getDeptno() {
		return deptno;
	}
	public void setDeptno(String deptno) {
		this.deptno = deptno;
	}
	public String getDname() {
		return dname;
	}
	public void setDname(String dname) {
		this.dname = dname;
	}
	public String getLoc() {
		return loc;
	}
	public void setLoc(String loc) {
		this.loc = loc;
	}
	
}

dao数据访问层

package cn.cc.mvc.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import cn.cc.mvc.pojo.Dept;
import cn.cc.mvc.util.DbUtil;

//Dept 的CRUD
public class DeptDao {
	DbUtil db = new DbUtil();
	//添加部门方法
	public int addDept(Dept dept) {
		String sql = "insert into deptmvc(deptno,dname,loc) values(?,?,?)";
		List<Object> para = new ArrayList<Object>();
		para.add(dept.getDeptno());
		para.add(dept.getDname());
		para.add(dept.getLoc());
		
		int result = db.executeOper(sql,para);
		return result;
	}
	
	//查询部门方法
	public List<Dept> getAllDepts() {
		String sql = "select deptno,dname,loc from deptmvc";
		List<Dept> listDepts = new ArrayList<Dept>();
		ResultSet rs = db.executeSelect(sql);
		try {
			while(rs.next()) {
				Dept d = new Dept();
				d.setDeptno(rs.getString("deptno"));
				d.setDname(rs.getString("dname"));
				d.setLoc(rs.getString("loc"));
				listDepts.add(d);		
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return listDepts;
	}
	
	//按条件查询方法
	public List<Dept> getDeptsByLoc(Dept dept){
		String sql="select * from dept where loc like ?";
		//声明给sql语句中?赋值的集合
		List<Object> para=new ArrayList<Object>();
		para.add("%"+dept.getLoc()+"%");
		
		ResultSet rs=db.executeSelect(sql, para);
		//声明集合:存放rs中的查询结果
		List<Dept> listDepts=new ArrayList<Dept>();
		try {
			while(rs.next()){
				Dept d=new Dept();
				d.setDeptno(rs.getString("deptno"));
				d.setDname(rs.getString("dname"));
				d.setLoc(rs.getString("loc"));
				listDepts.add(d);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return listDepts;
	}
}

service业务逻辑层

package cn.cc.mvc.service;

import java.util.List;

import cn.cc.mvc.dao.DeptDao;
import cn.cc.mvc.pojo.Dept;

public class DeptService {
	
	DeptDao dd = new DeptDao();
	public String addDept(Dept dept) {
		int result = dd.addDept(dept);
		String message="";
		if (result == 1) {
			message = "添加部门成功";
		}else {
			message = "添加部门失败";
		}
		return message;
	}
	
	public List<Dept> getAllDepts(){
		return dd.getAllDepts();
	}
	
	public List<Dept> getDeptsByLoc(Dept dept){
		return dd.getDeptsByLoc(dept);
	}
}

controller调度层

package cn.cc.mvc.Controller;

import java.util.List;

import cn.cc.mvc.pojo.Dept;
import cn.cc.mvc.service.DeptService;

public class DeptController {
	DeptService ds = new DeptService();
	
	public String addDept(Dept dept) {
		return ds.addDept(dept);
	}
	
	public List<Dept> getAllDepts(){
		return ds.getAllDepts();
	}
	public List<Dept> getDeptsByLoc(Dept dept){
		return ds.getDeptsByLoc(dept);
	}
}

view视图层

package cn.cc.mvc.view;

import java.util.List;
import java.util.Scanner;

import cn.cc.mvc.Controller.DeptController;
import cn.cc.mvc.pojo.Dept;

public class DeptView {
	DeptController dc = new DeptController();
	Scanner input = new Scanner(System.in);
	
	public void addDept() {
		Dept d = new Dept();
		System.out.println("部门编号:");
		d.setDeptno(input.next());
		System.out.println("部门名称:");
		d.setDname(input.next());
		System.out.println("部门位置:");
		d.setLoc(input.next());
		String message = dc.addDept(d);
		System.out.println(message);
	}
	
	public void showAllDepts() {
		List<Dept> depts = dc.getAllDepts();
		System.out.println("部门编号\t部门名称\t位置");
		for (Dept dept : depts) {
			System.out.println(dept.getDeptno()+"\t"+dept.getDname()+"\t"+dept.getLoc());
		}
	}
	
	//根据地址查询部门信息
		public void getDeptsByLoc(){
			System.out.println("请输入部门地址:");
			Dept d=new Dept();
			d.setLoc(input.next());
			
			List<Dept> depts=dc.getDeptsByLoc(d);
			
			System.out.println("部门编号\t部门名称\t位置");
			for(Dept dept:depts){
				System.out.println(dept.getDeptno()+"\t"+dept.getDname()+"\t"+dept.getLoc());
			}
		}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值