1.DAO模式  DAO(Data Access Object)模式就是写一个类,把访问数据库的代码封装起来.DAO在数据库与业务逻辑(Service)之间.     l  实体域,即操作的对象,例如我们操作的表是user表,那么就需要先写一个User类:      l  DAO模式需要先提供一个DAO接口:          l  然后再提供一个DAO接口的实现类:     l  再编写一个DAO工厂,Service通过工厂来获取DAO实现. 这里,就只简单实现通过加载外部配置文件,反射实例化…
Java基础-面向接口编程-JDBC详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JDBC概念和数据库驱动程序 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.是Java访问数据库的标准规范.本篇博客使用的介绍的是Java链接MySQL数据库,如果对MySQL数据不是很了解的小伙伴请参考:http://www.…
第八章:DAO模式 8.1:JDBC封装 为了提高代码的维护性和扩展性,我们使用JDBC进行封装数据, 先定义统一的API,将操作数据的代码抽象到接口中,业务逻辑代码只需要调用这些接口的实现类的对象,就可以实现对数据的访问了,从而隔离实现的细节,采用面向接口编程,可以降低代码间的耦合度,提高代码的扩展性和维护性. DAO(data  access  Objects) 数据存取对象,位于业务逻辑和持久化之间,实现对持久化数据的访问,通俗的讲,就是将数据操作封装起来,对外提供相应的接口 在面向对象设…
一.对可共享数据的同步访问 synchronized关键字可以保证在同一时刻,只有一个线程在执行一条语句,或者一段代码块.正确地使用同步可以保证其他任何方法都不会看到对象处于不一致的状态中,还能保证通过一系列看似顺序执行的状态转变序列,对象从一种一致的状态变迁到另一种一致的状态. 迟缓初始化(lazy initialization)的双重检查模式(double-check idiom): //The double-check idiom for lazy initializaation -bro…
迭代器模式 所谓Iterator模式,即是Iterator为不同的容器提供一个统一的访问方式.本文以Java中的容器为例,模拟Iterator的原理. 1 定义一个容器Collection接口 public interface Collection { void add(Object obj); int size(); Iterator iterator(); } 2 定义一个Iterator迭代器的接口 public interface Iterator { Object next(); bo…
一.概念 1.多个线程之间访问同一资源,进行协调的过程是线程同步.例如两个人同时操作同一银行账户.解决方法:加锁 2.Java种引入对象互斥锁的概念,保证共享数据操作的完整性.每个对象都对应于一个可称为“互斥锁”的标记,这个标记保证在任一时刻,只能有一个线程访问该对象.关键字synchronized来与对象的互斥锁联系. 当synchronized修饰方法时,是指当前调用该方法的对象被锁定.当synchronized(*)修饰代码块时,*指定的对象被锁定.如果*为this,则与synchroni…
一.概念 线程:是一个程序里面不同的执行路径,每一个分支都叫线程.到现在为止我们所讲的程序分支只有一个,即main方法,称作主线程. 进程:class文件,exe文件.程序的执行过程:程序放入代码区(进程产生,准备开始执行,进程是静态的概念),平时所说的“进程的执行”是指进程中主线程(main)的执行,实际运行得都是线程. Windows Linux Unix操作系统是支持多进程.多线程的,Dos是只支持单进程的.一个时间点上一个cpu只有一个线程在执行,CPU很快,看起来像是同时运行.真正的多…
我们知道在使用MyBatis开发时,只需要添加DAO接口和对应的映射XML文件,不需要写DAO的实现类,其实底层是通过动态代理实现. 本文将使用前几篇文章的知识点实现一个纯面向接口编程的简单框架,与MyBatis实现DAO实现类相似,主要采用注解.反射.动态代理.工厂模式等.具体功能: 接口添加自定义类注解,动态生成接口的实现类 通过可配置的方式实现接口行为,如在网络传输中使用TCP或UDP协议,在数据库中配置不同的数据库类型等 方法上添加自定义方法和参数注解,控制接口具体实现 底层通过代理模拟…
相信看到这篇文字的人已经不需要了解什么是接口了,我就不再过多的做介绍了,直接步入正题,接口测试如何编写.那么在这一篇里,我们用一个例子,让各位对这个重要的编程思想有个直观的印象.为充分考虑到初学者,所以这个例子非常简单,望各位高手见谅. 为了摆脱新手的概念,我这里也尽量不用main方法,而采用testNG编写测试用例. 定义:现在我们要开发一个应用,模拟移动存储设备的读写,即计算机与U盘.MP3.移动硬盘等设备进行数据交换. 上下文(环境):已知要实现U盘.MP3播放器.移动硬盘三种移动存储设备…
Java程序访问数据库: 1.获取数据库厂商提供的驱动(jdbc接口的实现类) 如ojdbc14.jar——Oracle数据库驱动jar包 mysql-connector-java-5.1.8-bin.jar——MySQL数据库驱动jar包 自己去网上下载就行. 2.使用JDBC的API访问数据库 连接.SQL语句执行.结果 java.sql.Driver:各个数据库厂商需要实现该接口,驱动的标记 java.sql.Connection:封装和数据库的连接 java.sql.Statement:…