JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(四)之搭建控制层

因为模型层里面的DAO全部都编写了CRUD这四种业务方法,所以控制层里面也同样要编写这四种方法
注意控制层原先写的代码我们可以删除掉
增加代码如下

//编写控制层CRUD
	public void add() {
		
	}
	
	public void edit() {
		
	}
	
	public void del() {
		
	}
	
	public void query() {
		
	}
	
	public void query(List<Map<String, Object>> params) {
		
	}

不要的代码可以注释掉,像下面这样

package com.DemoJdbc.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.DemoJdbc.dao.StudentsDAO;
import com.DemoJdbc.model.students;

public class StudentsAction {
	//编写控制层CRUD
	public void add() {
		
	}
	
	public void edit() {
		
	}
	
	public void del() {
		
	}
	
	public void query() {
		
	}
	
	public void query(List<Map<String, Object>> params) {
		
	}
	////当上面的控制层写完以后那么下面的这些代码都可以删除掉//////////
//	public static void main(String[] args) throws Exception {
//		
//		/*//写一个main方法来测试刚刚我们写的查询方法、		
//		StudentsDAO stu = new StudentsDAO();
//		List<students> st = stu.query();
//		
//		//遍历集合
//		for (students students : st) {
//			System.out.println(students.getUser_name()+","+students.getAge());
//		}
//		*/
//		//////////////////////上面是简单的数据库连接代码///////////////////////////
//		
//		StudentsDAO STU = new StudentsDAO();//定义方法
//		students stu1 = new students();//定义一个学生对象
//		
//		//1、增加方法测试
//		stu1.setUser_name("uuu");
//		stu1.setAge(18);
//		stu1.setPhone("13237328456");
//		stu1.setCreate_user("cxp1");
//		stu1.setUpdate_user("cxp2");
//		stu1.setIsdel(1);	
//		STU.addStudents(stu1);//调用增加方法
//		
//		//2、更新方法测试
//		stu1.setId(1);
//		stu1.setUser_name("ggg");
//		stu1.setAge(88);
//		stu1.setPhone("13237328456");
//		stu1.setUpdate_user("GAI1");
//		stu1.setIsdel(1);
//		STU.updateStudents(stu1);//调用更新方法
//		
//		//3、删除方法测试
//		STU.delStudents(1);//调用删除方法
//		
//		//4、查询单个学生信息测试
//		students stu2 = STU.get(1);
//		System.out.println(stu2.toString());
//		//这里需要在抽象类里面重写一个toSrting的方法,将查询到的信息打印到控制台	
//		
//		//5、按照固类条件查询
//		List<students> result=STU.query("lisi");
//		for (int i = 0; i < result.size(); i++) {
//			System.out.println(result.get(i).toString());
//		}
//		
//		//6、通过集合查询信息(一)
//		List<Map<String, Object>> params=new ArrayList<Map<String,Object>>();
//		Map<String, Object> param=new HashMap<String, Object>();
//		param.put("name","user_name");
//		param.put("rela", "=");
//		param.put("value", " 'lisi' ");
//		params.add(param);
//		List<students> result1=STU.query(params);//要记住加这一条
//		for (int i = 0; i < result1.size(); i++) {
//			System.out.println(result1.get(i).toString());
//		}
//		
//		//6、通过集合查询信息(二)
//		List<Map<String, Object>> params2=new ArrayList<Map<String,Object>>();
//		Map<String, Object> param2=new HashMap<String, Object>();
//		param2.put("name","user_name");
//		param2.put("rela", "like");
//		param2.put("value", " '%lisi%' ");
//		params2.add(param2);
//		
//		param2=new HashMap<String, Object>();
//		param2.put("name","phone");
//		param2.put("rela", "=");
//		param2.put("value", " '123456' ");
//		params2.add(param2);
//		List<students> result2=STU.query(params2);//要记住加这一条
//		for (int i = 0; i < result2.size(); i++) {
//			System.out.println(result2.get(i).toString());
//		}
//	}
}

补全所添加的代码

//编写控制层CRUD
	public void add(students students) throws Exception {
		StudentsDAO dao=new StudentsDAO();		
		dao.addStudents(students);
	}//增加学生信息
	
	public students get(Integer id) throws Exception {
		StudentsDAO dao=new StudentsDAO();
		return dao.get(id);
	}//查询单个学生信息
	
	public void edit(students students) throws Exception {
		StudentsDAO dao=new StudentsDAO();		
		dao.updateStudents(students);
	}//更新学生信息
	
	public void del(Integer id) throws Exception {
		StudentsDAO dao=new StudentsDAO();		
		dao.delStudents(id);
	}//删除学生信息
	
	public List<students> query() throws Exception {
		StudentsDAO dao=new StudentsDAO();		
		return dao.query();
	}//查询所有学生信息
	
	public List<students> query(List<Map<String, Object>> params) throws Exception {
		StudentsDAO dao=new StudentsDAO();		
		return dao.query(params);
	}//根据参数查询指定学生信息

编辑完控制层之后再创建一个包单独但测试Action
JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(四)之搭建控制层
在包里面创建一个TestAction类
填入下面的代码

package com.DemoJdbc.test;

import java.util.List;

import com.DemoJdbc.action.StudentsAction;
import com.DemoJdbc.model.students;

public class TestAction {
	public static void main(String[] args) throws Exception {
		StudentsAction action=new StudentsAction();
		
		List<students> result=action.query();
	
		for (int i = 0; i < result.size(); i++) {
			System.out.println(result.get(i).getId()+
					":"+result.get(i).getUser_name());		
		}
	}
}

JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(四)之搭建控制层
测试运行一下发现id是空的如下图
JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(四)之搭建控制层
那我们就直接到模型层的DAO里面去看看是哪里出问题了
发现是查询的方法中没有写入id,我们只需要写入id就行
需要修改的地方为我圈主的蓝色块块的地方
看下面两个图片
JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(四)之搭建控制层
JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(四)之搭建控制层
看一下此时的查询结果
JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(四)之搭建控制层