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,用来一步步的执行当前功能,而不是一次性全都输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值