java学习笔记之三层结构

三层结构

三层结构:是一种思想,不是一个技术,它是由数据层(dao),业务层(service),视图层(view)组成的,具有高内聚,低耦合的特点。

  • 数据层(dao):主要负责对数据库的增删改查
  • 业务层(service):主要负责业务的逻辑处理与数据传递,将数据层传过来的数据处理后返给视图层
  • 视图层 (view) :主要负责接受业务层传过来的数据进行数据展示

三层结构图

java学习笔记之三层结构_第1张图片

三层结构案例

  • 案例介绍:使用三层结构对dog表进行查询
View层
 public static void main(String[] args) throws Exception {
        //1.显示菜单
        System.out.println("欢迎来到商品管理系统,请输入以下命令:");
        while (true) {
            System.out.println(" FI:查询  FA:查询所有  Q:退出");
            //2.获取用户的键盘输入
            Scanner sc = new Scanner(System.in);
            String userSelect = sc.nextLine();
            switch (userSelect.toUpperCase()) {
                case "FI":
                    search();
                    System.out.println("查询成功");
                    break;
                case "FA":
                    searchAll();
                    System.out.println("查询全部成功");
                    break;
                case "Q":
                    System.out.println("欢迎下次再来");
                    System.exit(0);//退出
                    break;
                default:
                    System.out.println("请输入正确命令");
                    break;
            }
        }
    }
      //查询单个商品
    public static void search() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要查询的商品id");
        int sid = Integer.parseInt(sc.nextLine());
        //调用service的方法
        ServiceClass serviceClass = new ServiceClass();
        sqlClass sqlClass = serviceClass.searchid(sid);
        //展示数据
        if (sqlClass == null) {
            System.out.println("所查询不在,请确认后输入");
        } else {
        //将查询的数据输出
            System.out.println(sqlClass);
        }
        System.out.println("查询成功");
    }
     //查询所有
    public static void searchAll() {
    //创建业务层对象 ,调取业务层的查询全部方法
        ServiceClass serviceClass = new ServiceClass();
        //因为在dao层将获取的数据放在了一个list集合,需要遍历
        List<Map<String, Object>> list = serviceClass.searchAll();
        for (Map<String, Object> li : list) {
            System.out.println(li + " ");
        }
    }
业务层
 //根据id查询
    public sqlClass searchid(int p) {
    //创建dao层对象,并将id传给dao层的查询函数
        DaoDemo dao = new DaoDemo();
        sqlClass sq = null;
        try {
            sq = dao.search(p);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return sq;
    }
      //查询全部
    public List<Map<String, Object>> searchAll() {
        DaoDemo daoDemo = new DaoDemo();
        List<Map<String, Object>> obj = null;
        try {
            obj = daoDemo.searchAll();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return obj;
    }
Dao层

这里使用了C3P0的连接池 以及 DbUtile工具包


//搜索指定的
    public sqlClass search(int id) throws Exception {
    //建立连接
        QueryRunner qr = new QueryRunner(CP30_Utils.getDataSource());
    //执行sql语句,返回值是sqlClass的对象
        sqlClass sql = qr.query("select * from dog where sid=?", new BeanHandler<sqlClass>(sqlClass.class), id);
        return sql;
    }
    //搜索所有的
    public  List<Map<String,Object>> searchAll() throws Exception {
        QueryRunner qr = new QueryRunner(CP30_Utils.getDataSource());
        List<Map<String,Object>> ls = qr.query("select * from dog", new MapListHandler());
        return ls;
    }

你可能感兴趣的:(java学习笔记之三层结构)