关闭

将数据库的操作代码从servlet中剥离,封装到DAO中

484人阅读 评论(0) 收藏 举报
分类:

工厂设计模式是所有设计模式中最简单的设计模式!!!(就是通过工厂来创建一些对象)

工厂模式的典型应用场景:创建对象(当我们感觉到创建对象是件很痛苦的事,会用工厂模式) 

工厂模式:简单工厂,工厂方法,抽象工厂(要支持创建多个产品,定义一个抽象工厂,抽象工厂中有多个工厂方法,可以创建多个产品)

工厂方法:

抽象工厂:利用工厂方法实现抽象工厂

 

为了避免直接在servlet中看到操作数据库的代码(直接在servlet中通过JDBC访问数据库),并且由于数据库的不同,操作代码也不同,譬如分页查询的sql语句,mysql的可以:select * from t_article where title like '%"+title+"%' limit ?,?,而在oracle中是不可以用limit的。

实现方法为:创建一个接口ArticleDao

然后创建两个实现了ArticleDao接口的类:ArticleDaoImpl(具体实现了操作MySQL数据库的类)和ArticleDaoImplForOracle(具体实现了操作Oracle数据库的类)。

HashMap是线程不安全的对象,而Hashtable<>是线程安全的对象。

public class Hashtable<K,V> 

extends Dictionary<K,V> 

implements Map<K,V>, Cloneable, java.io.Serializable {}

Properties extends Hashtable<Object,Object>继承了Hashtable,它有更强大的功能,Properties 可以直接读取文件,而且可以将文件中的键值对直接放到Map中来(Properties就是一个Map),调用Properties load方法(HashMapHashtable中没有load方法),能够 

通常DAO是无状态的。

Servlet不仅仅可以处理来自客户端的请求,还可以利用他的init方法来做些我们想做的初始化工作。

任何一个请求servlet发到服务器端,都会先调用servlet中的service()方法,在service方法中根据请求的Httphead里面携带的有关这个请求方法的信息,譬如是get或者post方法,然后把这个请求转发给doGet()或者doPost(),实际上任何一个servlet都有一个唯一的入口,即service()方法,所以可以在到达doGet()或者doPost()方法之前,在service()方法中执行一些操作。

父类中的this是多态的,他是具体的子类对象,而不是父类对象。

Spring的主体思想就是DI(依赖注入)IOC

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:709483次
    • 积分:12858
    • 等级:
    • 排名:第1114名
    • 原创:288篇
    • 转载:1964篇
    • 译文:3篇
    • 评论:11条
    最新评论