- 浏览: 1489227 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
工厂设计:
使用工厂设计,使前台不用知道具体子类是谁,是前台显示与后台逻辑操作分离,便于修改。
实例:在DAO设计模式中加入工厂设计
DAOFactory.java:使用工厂设计设置子类
view source
<embed id="highlighter_772179_clipboard" title="copy to clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://mgc.ahau.edu.cn/common/SyntaxHighlighter/scripts/clipboard.swf" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_772179" menu="false"></embed>
print
?
01.
package
mgc.dao.factory;
02.
03.
import
mgc.dao.test.*;
04.
import
mgc.dao.test.impl.*;
05.
public
class
DAOFactory {
06.
public
static
MemberDAO getMemberDAOInstance() {
07.
return
new
MemberDAOImpl();
08.
}
09.
}
MemberDAO.java:数据库操作接口类
view source
<embed id="highlighter_76257_clipboard" title="copy to clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://mgc.ahau.edu.cn/common/SyntaxHighlighter/scripts/clipboard.swf" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_76257" menu="false"></embed>
print
?
01.
package
mgc.dao.test;
02.
03.
import
java.util.*;
04.
import
mgc.dao.vo.*;
05.
//规定操作member表的全部方法
06.
public
interface
MemberDAO {
07.
//插入数据
08.
public
void
insert(Member member)
throws
Exception;
09.
//修改数据
10.
public
void
update(Member member)
throws
Exception;
11.
//删除数据
12.
public
void
delete(
int
id)
throws
Exception;
13.
//按ID查询
14.
public
Member queryById(
int
id)
throws
Exception;
15.
//全部查询
16.
public
List queryAll()
throws
Exception;
17.
}
Member.java:VO对象类
view source
<embed id="highlighter_308880_clipboard" title="copy to clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://mgc.ahau.edu.cn/common/SyntaxHighlighter/scripts/clipboard.swf" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_308880" menu="false"></embed>
print
?
01.
package
mgc.dao.vo;
02.
03.
public
class
Member {
04.
private
int
id;
05.
private
String username;
06.
private
String password;
07.
08.
public
void
setId(
int
id){
09.
this
.id=id;
10.
}
11.
public
void
setUsername(String username){
12.
this
.username=username;
13.
}
14.
public
void
setPassword(String password){
15.
this
.password=password;
16.
}
17.
public
int
getId(){
18.
return
this
.id;
19.
}
20.
public
String getUsername(){
21.
return
this
.username;
22.
}
23.
public
String getPassword(){
24.
return
this
.password;
25.
}
26.
}
DatabaseConnection.java:数据库连接类
view source
<embed id="highlighter_592693_clipboard" title="copy to clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://mgc.ahau.edu.cn/common/SyntaxHighlighter/scripts/clipboard.swf" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_592693" menu="false"></embed>
print
?
01.
package
mgc.dao.test.dbc;
02.
03.
import
java.sql.*;
04.
05.
public
class
DataBaseConnection {
06.
07.
private
final
String DBDRIVER=
"sun.jdbc.odbc.JdbcOdbcDriver"
;
08.
private
final
String DBURL=
"jdbc:odbc:member"
;
09.
private
Connection conn=
null
;
10.
11.
public
DataBaseConnection() {
12.
try
{
13.
Class.forName(DBDRIVER);
14.
this
.conn=DriverManager.getConnection(DBURL);
15.
}
16.
catch
(Exception e){}
17.
}
18.
19.
public
Connection getConnection() {
20.
return
this
.conn;
21.
}
22.
23.
public
void
close() {
24.
try
{
25.
this
.conn.close();
26.
}
27.
catch
(Exception e){}
28.
}
29.
}
MemberDAOImpl.java:数据库操作类
001.
package
mgc.dao.test.impl;
002.
003.
import
java.util.*;
004.
import
java.sql.*;
005.
import
mgc.dao.vo.*;
006.
import
mgc.dao.test.*;
007.
import
mgc.dao.test.dbc.*;
008.
009.
public
class
MemberDAOImpl
implements
MemberDAO {
010.
011.
//插入数据
012.
public
void
insert(Member member)
throws
Exception {
013.
String sql=
"Insert INTO member (username,password) VALUES (?,?)"
;
014.
PreparedStatement pstmt=
null
;
015.
DataBaseConnection dbc=
null
;
016.
try
{
017.
//连接数据库
018.
dbc=
new
DataBaseConnection();
019.
pstmt=dbc.getConnection().prepareStatement(sql);
020.
pstmt.setString(
1
, member.getUsername());
021.
pstmt.setString(
2
, member.getPassword());
022.
//操作数据库
023.
pstmt.executeUpdate();
024.
pstmt.close();
025.
}
026.
catch
(Exception e) {
027.
throw
new
Exception(e);
028.
}
029.
finally
{
030.
//关闭数据库
031.
dbc.close();
032.
}
033.
}
034.
035.
//修改操作
036.
public
void
update(Member member)
throws
Exception {
037.
String sql=
"Update member SET username=?,password=? Where ID=?"
;
038.
PreparedStatement pstmt=
null
;
039.
DataBaseConnection dbc=
null
;
040.
try
{
041.
//连接数据库
042.
dbc=
new
DataBaseConnection();
043.
pstmt=dbc.getConnection().prepareStatement(sql);
044.
pstmt.setString(
1
, member.getUsername());
045.
pstmt.setString(
2
, member.getPassword());
046.
pstmt.setInt(
3
,member.getId());
047.
//操作数据库
048.
pstmt.executeUpdate();
049.
pstmt.close();
050.
}
051.
catch
(Exception e) {
052.
throw
new
Exception(e);
053.
}
054.
finally
{
055.
//关闭数据库
056.
dbc.close();
057.
}
058.
}
059.
060.
public
void
delete(
int
id)
throws
Exception {
061.
String sql=
"Delete FROM member Where ID=?"
;
062.
PreparedStatement pstmt=
null
;
063.
DataBaseConnection dbc=
null
;
064.
065.
try
{
066.
//连接数据库
067.
dbc=
new
DataBaseConnection();
068.
pstmt=dbc.getConnection().prepareStatement(sql);
069.
pstmt.setInt(
1
, id);
070.
//操作数据库
071.
pstmt.executeUpdate();
072.
pstmt.close();
073.
}
074.
catch
(Exception e) {
075.
throw
new
Exception(e);
076.
}
077.
finally
{
078.
//关闭数据库
079.
dbc.close();
080.
}
081.
}
082.
083.
public
Member queryById(
int
id)
throws
Exception {
084.
String sql=
"Select * FROM member Where ID=?"
;
085.
PreparedStatement pstmt=
null
;
086.
DataBaseConnection dbc=
null
;
087.
ResultSet rs=
null
;
088.
Member member=
null
;
089.
try
{
090.
//连接数据库
091.
dbc=
new
DataBaseConnection();
092.
pstmt=dbc.getConnection().prepareStatement(sql);
093.
pstmt.setInt(
1
, id);
094.
//操作数据库
095.
rs=pstmt.executeQuery();
096.
if
(rs.next()) {
097.
//将查询结果保存在Member对象中
098.
member=
new
Member();
099.
member.setUsername(rs.getString(
"username"
));
100.
member.setPassword(rs.getString(
"password"
));
101.
}
102.
rs.close();
103.
pstmt.close();
104.
}
105.
catch
(Exception e) {
106.
throw
new
Exception(e);
107.
}
108.
finally
{
109.
//关闭数据库
110.
dbc.close();
111.
}
112.
return
member;
113.
}
114.
115.
public
List queryAll()
throws
Exception {
116.
String sql=
"Select * FROM member"
;
117.
PreparedStatement pstmt=
null
;
118.
DataBaseConnection dbc=
null
;
119.
ResultSet rs=
null
;
120.
List all=
new
ArrayList();
121.
try
{
122.
//连接数据库
123.
dbc=
new
DataBaseConnection();
124.
pstmt=dbc.getConnection().prepareStatement(sql);
125.
//操作数据库
126.
rs=pstmt.executeQuery();
127.
while
(rs.next()) {
128.
//将查询结果保存在Member对象中
129.
Member member=
new
Member();
130.
member.setUsername(rs.getString(
"username"
));
131.
member.setPassword(rs.getString(
"password"
));
132.
all.add(member);
133.
}
134.
rs.close();
135.
pstmt.close();
136.
}
137.
catch
(Exception e) {
138.
throw
new
Exception(e);
139.
}
140.
finally
{
141.
//关闭数据库
142.
dbc.close();
143.
}
144.
return
all;
145.
}
146.
}
dao.jsp:前台显示页面
view source
<embed id="highlighter_126215_clipboard" title="copy to clipboard" type="application/x-shockwave-flash" width="16" height="16" src="http://mgc.ahau.edu.cn/common/SyntaxHighlighter/scripts/clipboard.swf" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_126215" menu="false"></embed>
print
?
01.
<%@page contentType="text/html;charset=GB2312" %>
02.
<%@page import="java.util.*" %>
03.
<%@page import="mgc.dao.factory.*" %>
04.
<%@page import="mgc.dao.test.impl.*" %>
05.
<%@page import="mgc.dao.vo.*" %>
06.
<
html
>
07.
<
head
>
08.
<
title
>dao.jsp</
title
></c
发表评论
-
UML、Design Pattern、OOD、OOP關係圖 (OO) (Design Pattern) (UML)
2009-12-06 17:55 1583http://moncs.cs.mcgill.ca/pe ... -
學習Design Pattern的小技巧 (OO) (Design Pattern)
2009-12-06 17:53 1528Abstract很多人學習Design Pattern,總是被 ... -
桥梁(Bridge)模式
2009-12-06 17:49 1037设计模式(16)-Bridge Pattern ... -
设计模式(22)-Strategy Pattern
2009-12-06 17:01 1034设计模式(22)-Strategy Pattern ... -
Facade Pattern
2009-12-06 17:00 988一、 门面(Facade) ... -
facade pattern
2009-12-06 16:57 1109facade是我學到的第三個pattern,也是個很簡單的pa ... -
Proxy Pattern
2009-12-06 14:41 1130代理模式:给某一对象提供代理对象,并由代理对象控制具体对象的引 ... -
门面模式概要
2009-12-05 11:01 1251一、门面模式定义 ... -
FacadePattern-Java代码实例讲解
2009-12-05 10:49 1712Facade Pattern 外观模式 提供一个 ... -
FacadePattern
2009-12-05 10:40 891在过去几年中 ...
相关推荐
用简单易懂的例子说明DAO设计模式(附带sql脚本,mysql数据库)
DAO设计模式可以通过采用抽象工厂和工厂方法模式来变得非常的灵活. 当底层数据存储实现不需要发生改变时,该策略可以使用工厂方法设计模式实现,来产生应用中所需的DAO. 当底层数据储存实现不得不发生变化的时候, ...
JavaEE技术-DAO设计模式:DAO接口,DAO实现类,DAO工厂类,VO类,数据库连接类。
工厂模式dao模式操作数据库小例子 本例子适合刚学完java一点基础部分,想利用下工厂模式还有dao设计模式简单操作数据库的看一下
本文主要讲解当前流行的J2EE设计模式——DAO设计模式,包括接口的设计、工厂设计模式的应用,重点阐述的是J2EE中层的概念
JAVA编写的购物车,能够打印出商品的数量,单价和总价,使用了工厂模式和DAO模式。对初学者有很好的帮助
java设计模式:DAO模式 DAO设计模式 DAO的理解 1、DAO其实是利用组合工厂模式来解决问题的,并没有带来新的功能,所以学的 其实就是个思路。 2、DAO理论上是没有层数限制的。 3、DAO的各层理论上是没有先后的。 DAO...
DAO抽象工厂
包含策略模式,单件模式,迭代器与组合模式,工厂模式,观察者模式,命令模式,适配器与外观模式,装饰者模式的问题描述,类图,源码,运行截图。
用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...
JavaEE常用设计模式,MVC、DAO、工厂等等
java设计模式,pdf版。包括常用到的单例,工厂,dao,vo等设计模式。
工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成...
数据访问对象模式(DAO) 工厂模式(factory) 模型视图控制器模式(MVC) 代理模式(proxy) 单例模式(singleton) 策略模式(strategy) 模板模式(template) 另外还有一个关于动态代理的小例子
为能和大家能共同探讨"设计模式",我将自己在学习中的心得写下来,只是想帮助更多人更容易理解 GoF 的《设计模式》。由 于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等...
这也是一种常用的设计模式,在DAO设计模式中也被使用到,此模式值得我们学习。
用Java语言采用接口设计模式、代理设计模式、工厂设计模式实现对excel中的表实现基本的...使用Java内置的poi jar包实现excel的操作,使用工厂模式、DAO设计模式等,思想很简单,可供设计模式参考,包括代码+文档+jar包
一、项目前准备工作 1、eclipse 或者myeclipse 都可以 2、数据库(Oracle或者mysql或者其他也可以) 3、了解Javaweb相关知识 ...在dao下新建一个DBConn类用来处理对数据进行连接。 我使用的是Oracle数据
使用Java内置的poi jar包实现excel的操作,使用工厂模式、DAO设计模式等,思想很简单,可供设计模式参考,包括代码
7.4 DAO设计模式与工厂模式的整合 49 7.5 DAO设计模式测试 52 第八节 JDBC对事务的支持 52 8.1 模拟转账 53 8.2 jdbc默认事务 54 8.3 事务提交与回滚 54 8.4 设置保存点 55 8.5 JTA事务的介绍 56 8.6 数据库的隔离...