- 为什么进行JDBC封装
- 业务代码和数据
- 访问代码耦合
- 注意1、将相似功能的代码抽取封装成方法,减少代码冗余
- 2、因为不同的数据库会有不同的实现,对数据库的操作一般
- 抽取成接口,在以后的开发中可以降低耦合
- 不利于后期修改可读性差不利于代码复用和维护
- 实现JDBC封装
- 将所有增删改查操作抽取成接口
- 定义实体类传输数据
- 将通用的操作(打开、关闭连接等)封装到工具类
- 数据库工具类BaseDao:增、删、改、查的通用方法
- 什么是DAO
- Data Access Object(数据存取对象)
- 位于业务逻辑和持久化数据之间
- 实现对持久化数据的访问
-
- DAO模式的组成
- DAO模式的组成部分
- DAO接口
- DAO实现类
- 实体类
- 数据库连接和关闭工具类
- 优势
- 隔离了数据访问代码和业务逻辑代码
- 隔离了不同数据库实现
- 配置数据库访问参数
-
- 弊端
- 数据库发生改变时,要重新修改代码,重新编译和部署
- 解决
- 将数据库信息写在配置文件当中,让程序通过读取配置文件来获得这些信息
- 为何需要单例模式
- BaseDao:操作数据库的基类
- 每个线程对系统操作都需new一个BaseDao实例
- 初始化时的I/O操作消耗系统资源,影响系统性能
- 单例模式
- 系统运行期间,有且仅有一个实例
- 一个类只有一个实例——最基本的要求只提供私有构造器
- 它必须自行创建这个实例定义了静态的该类私有对象
- 它必须自行向整个系统提供这个实例提供一个静态的公有方法,返回创建或者获取本身的静态
- 私有对象
- 懒汉模式
- 在类加载时不创建实例,采用延迟加载的方式,在运
- 行调用时创建实例
- 特点
- 线程不安全
- 延迟加载(lazy loading)
- 如何解决线程安全问题?
- 同步(synchronized)
- 饿汉模式
- 在类加载的时候,就完成初始化
- 特点
- 线程安全
- 不具备延迟加载特性
-