数据访问层概要设计
来源:互联网 发布:软件系统安全 编辑:程序博客网 时间:2024/05/18 02:48
- 数据访问层
- 功能
- 目标
- 接口
- DataService
- NoteDaoT
- 调用时序图
- 示例
- 单条数据结构
- 列表数据结构
- 树形数据结构
数据访问层
功能
用于存储业务数据
目标
- 提供缓存、数据库等存储方式
- 提供数据获取策略
- 数据获取方式对外透明
- 提供局部数据增,删,改,查
- 提供对树形结构数据的存储支持
接口
DataService
数据访问层的门面类,提供DAO(Data Access Object)支持数据读、取
- 方法
NoteDao<T> getNoteDao(String name, Class<T> className)
NoteDao<T> getNoteDao(String name, Class<T> className, NoteFilter<T> filter)
NoteDao<T>
数据存储对象,提供增、删、改、查等功能,封装数据存取策略
方法
T query()
查询指定类型数据T query(NoteFilter<T> filter)
查询指定类型数据- filter:从查询列表中通过过滤条件过滤
List<T> query()
查询指定类型数据的列表List<T> query(NoteFilter<T> filter)
查询指定类型数据的列表- filter:从查询列表中通过过滤条件过滤
K query(String name, Class<K> className, NoteFilter<K> filter)
查询子类型(成员变量类型)数据- name:数据类型名称
- className:数据类型对象
- filter:从查询列表中通过过滤条件过滤
List<K> query(String name, Class<K> className, NoteFilter<K> filter)
查询子类型(成员变量类型)数据- name:数据类型名称
- className:数据类型对象
- filter:从查询列表中通过过滤条件过滤
- name:数据类型名称
void insert(T data)
添加指定类型数据void insert(String name, Class<K> className, K data)
添加子类型(成员变量类型)数据- name:数据类型名称
- className:数据类型对象
- data:要添加的数据
void update(T data)
更新指定类型数据- data:要更新的数据
void update(String name, Class<K> className, K data)
- name:数据类型名称
- className:数据类型对象
- data:要更新的数据
- name:数据类型名称
void delete()
删除数据void delete(NoteFilter<T> filter)
删除数据void delete(String name, Class<K> className)
删除子类型(成员变量类型)数据- name:数据类型名称
- className:数据类型对象
void delete(String name, Class<K> className, NoteFilter<K> filter)
删除子类型(成员变量类型)数据- name:数据类型名称
- className:数据类型对象
- filter:从查询列表中通过过滤条件过滤
调用时序图
示例
单条数据结构
DataService dataService = new DataService();NoteDao<User> userDao = dataService.getNoteDao("xx.local.user", User.class);User user = new User("xxxxx", "123456");//增加userDao.insert(user);//更新user.setPassword("454545");userDao.update(user);//查询User user1 = userDao.query();//删除userDao.delete();
列表数据结构
DataService dataService = new DataService();NoteDao<Record> recordDao= dataService.getNoteDao("xxx.storage.record", Record.class);//增加recordDao.insert(new Record(1,"1.mp4", "20160927150500", "20160927152000"));//查询final Record record = recordDao.query(new NoteFilter<Record>(){ boolean filter(Record curRecord) { if (curRecord.getId() == 1) { return true; } return false; }});//更新record.setFilePath("/xxx/1.mp4");recordDao.update(new NoteFilter<Record>() { boolean filter(Record curRecord) { if (curRecord.getId() == record.getId()) { return true; } return false; }});//删除recordDao.delete(new NoteFilter<Record>() { boolean filter(Record curRecord) { if (curRecord.getId() == record.getId()) { return true; } return false; }});
树形数据结构
DataService dataService = new DataService();//局部进行查询、增加、修改,删除NoteDao<Device> deviceDao= dataService.getNoteDao("xxx.device.Device", Device.class, new NoteFilter<Device> () { boolean filter(Device device){ if (device.getSnCode().equal("1NIDS12323OIFD")) { return true; } return false; }});//查询final Channel channel = deviceDao.query("xxx.device.Channel", Channel.class, new NoteFilter<Channel>(){ boolean filter(Channel curChannel){ if (curChannel.getIndex() == 0) { return true; } return false; }});//增加deviceDao.insert("xxx.device.Channel", Channel.class, new Channel(0, "camera01"));channel.setName("camera02");deviceDao.update("xxx.device.Channel", Channel.class, new NoteFilter<Channel>(){ boolean filter(Channel curChannel){ if (curChannel.getIndex() == channel.getIndex()) { return true; } return false; }});deviceDao.delete("xx.device.Channel", Channel.class, new NoteFilter<Channel>(){ boolean filter(Channel curChannel){ if (curChannel.getIndex() == channel.getIndex()) { return true; } return false; }});
- 数据访问层概要设计
- 一个数据访问层的概要设计
- 一个数据访问层的概要设计
- 数据持久层(04)_持久层的概要设计
- 数据访问层的设计
- 二.数据访问层设计
- 数据访问层的设计
- C# 数据访问层设计
- .NET数据访问概要
- 数据访问层设计 Disk.cs
- PetShop数据访问层之数据库访问设计
- PetShop数据访问层之数据库访问设计
- PetShop数据访问层之数据库访问设计
- PetShop数据访问层之数据库访问设计
- PetShop数据访问层之数据库访问设计
- PetShop数据访问层之数据库访问设计
- PetShop数据访问层之数据库访问设计
- PetShop数据访问层之数据库访问设计
- Android悬浮缩放菜单的实现【转】
- java基础(二)-数据类型
- LeetCode : Two Sum
- 【考研日记】:远离垃圾人与努力的状态
- spring使用总结
- 数据访问层概要设计
- PTAM与PTAMM
- LintCode:数组剔除元素之后的乘积
- 反射与构造方法(4)
- Hdu 5876 Sparse Graph(补图最短路)
- 题目1010:A + B
- Android开发环境搭建
- 手把手教你掌握Design新控件(一)
- 搭建Spark开发环境的几种方式及入门示例