JDBC之控制层和视图层

控制层的功能是连接视图层和模型层,主要实现的是根据视图层的命令,调用模型层的方法;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jdbc_chuan.dao.GoddessDao;
import jdbc_chuan.model.Goddess;

public class GoddessAction {
	
	GoddessDao dao=new GoddessDao();
	
	
	public void add(Goddess g) throws SQLException{
		dao.addGodness(g);
	}
	public void update(Goddess g) throws SQLException{
		dao.updateGoddess(g);
	}
	public void del(Integer id) throws SQLException{
		dao.delGoddess(id);
	}
	public List<Goddess> query() throws SQLException{
		return  dao.query();
	}
	public List<Goddess> query(List<Map<String,Object>>params) throws SQLException{
		return dao.query(params);
	}
	public Goddess getquery(Integer id) throws SQLException{
		return dao.getquery(id);
	}
	
	
	
}

视图层:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Scanner;

import com.imooc.action.GoddessAction;
import com.imooc.model.Goddess;

public class View {

	private static final String CONTEXT="欢迎来到女神禁区:\n" +
			"下面是女神禁区的功能列表:\n" +
			"[MAIN/M]:主菜单\n" +
			"[QUERY/Q]:查看全部信息\n" +
			"[GET/G]:查看单条详细信息\n" +
			"[ADD/A]:添加女神信息\n" +
			"[UPDATE/U]:更新信息\n" +
			"[DELETE/D]:删除信息\n" +
			"[SEARCH/S]:查询信息(根据姓名、手机号来查询)\n" +
			"[EXIT/E]:退出\n" +
			"[BREAK/B]:退出当前功能,返回主菜单";

	private static final String OPERATION_MAIN="MAIN";
	private static final String OPERATION_QUERY="QUERY";
	private static final String OPERATION_GET="GET";
	private static final String OPERATION_ADD="ADD";
	private static final String OPERATION_UPDATE="UPDATE";
	private static final String OPERATION_DELETE="DELETE";
	private static final String OPERATION_SEARCH="SEARCH";
	private static final String OPERATION_EXIT="EXIT";
	private static final String OPERATION_BREAK="BREAK";

	public static void main(String[] args) {
		
		System.out.println(CONTEXT);
		//怎么保持程序一直运行
		
		Scanner scan=new Scanner(System.in);
		Goddess goddess=new Goddess();
		GoddessAction action=new GoddessAction();
		String prenious=null;
		Integer step=1;
		while(scan.hasNext()){
			String in=scan.next().toString();
			if(OPERATION_EXIT.equals(in.toUpperCase())
					||OPERATION_EXIT.substring(0, 1).equals(in.toUpperCase())){
				System.out.println("您已成功退出数据库。");
				break;
			}else if(OPERATION_QUERY.equals(in.toUpperCase())
					||OPERATION_QUERY.substring(0, 1).equals(in.toUpperCase())){
				try {
					List<Goddess> list=action.query();
					for (Goddess go : list) {
						System.out.println(go.getId()+",姓名:"+go.getUser_name());
					}
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}else if(OPERATION_ADD.equals(in.toUpperCase())
					||OPERATION_ADD.substring(0, 1).equals(in.toUpperCase())
					||OPERATION_ADD.equals(prenious)){
				prenious=OPERATION_ADD;
				//新增女神
				
				if(1==step){
					System.out.println("请输入[姓名]");
				}else if(2==step){
					goddess.setUser_name(in);
					System.out.println("请输入[年龄]");
				}else if(3==step){
					goddess.setAge(Integer.valueOf(in));
					System.out.println("请输入[生日],格式如:yyyy-MM-dd");
				}else if(4==step){
					SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
					Date birthday=null;
					try {
						birthday = sf.parse(in);
						goddess.setBirthday(birthday);
						System.out.println("请输入[邮箱]");
					} catch (ParseException e) {
						e.printStackTrace();
						System.out.println("您输入的格式有误,请重新输入");
						step=3;
					}
				}else if(5==step){
					goddess.setEmail(in);
					System.out.println("请输入[手机号]");
				}else if(6==step){
					goddess.setMobile(in);
					
					try {
						action.add(goddess);
						System.out.println("新增成功");
					} catch (Exception e) {
						e.printStackTrace();
						System.out.println("新增失败");
					}
				}
				if(OPERATION_ADD.equals(prenious)){
					step++;					
				}
			}else{
				System.out.println("您输入的值为:"+in);				
			}
			
		}
	}
}
注意上面的两个标记,第一个是precious,用来保证在完成这一项功能之前不会跳到另外的功能去;

第二个是step,用来一步步的执行当前功能,而不是一次性全都输出

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC中的MVC架构指的是Model-View-Controller,是一种软件设计模式,用于将应用程序分为三个独立的部分,分别是模型(Model)、视图(View)和控制器(Controller)。下面分别介绍这三个部分的作用和职责: 1. 模型(Model) 模型是应用程序中的核心,它负责处理数据和业务逻辑,与数据库进行交互,实现数据的增删改查等操作。模型封装了数据和业务逻辑,为控制器和视图提供数据和服务。 2. 视图(View) 视图是用户界面,它负责展示数据,与用户进行交互。视图通常是一个UI组件,如Web页面、窗口、控件等。视图从模型中获取数据,并将数据展示给用户。 3. 控制器(Controller) 控制器负责协调模型和视图,它接收用户的请求,调用相应的模型处理请求并获取数据,然后将数据传递给视图进行展示。控制器还负责处理用户的输入,根据用户的输入调用相应的模型进行处理。 MVC架构将应用程序分为三个独立的部分,使得应用程序更加模块化、可维护、可扩展。同时,MVC架构也提高了应用程序的安全性和可测试性,使得应用程序更加健壮和可靠。 在JDBC中,可以将模型看作是DAO(Data Access Object),即数据访问对象,它负责与数据库进行交互,实现数据的增删改查等操作;将视图看作是JSP或Servlet等,它负责展示数据,与用户进行交互;将控制器看作是Servlet或Controller等,它负责协调DAO和JSP或Servlet等,实现业务逻辑的处理和数据的交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值