`
penghao122
  • 浏览: 362876 次
  • 性别: Icon_minigender_1
  • 来自: 广东珠海
社区版块
存档分类
最新评论

J2ee-DAO设计模式

阅读更多
package cn.mldn.lxh.factory ;

import cn.mldn.lxh.dao.* ;
import cn.mldn.lxh.dao.impl.* ;

public class DAOFactory
{
public static PersonDAO getPersonDAOInstance()
{
return new PersonDAOImpl() ;
}
};
===============================

package cn.mldn.lxh.dbc ;
import java.sql.* ;

// 主要功能就是连接数据库、关闭数据库
public class DataBaseConnection
{
private final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
private final String DBURL = "jdbc:oracle:thin:@localhost:1521:MLDN" ;
private final String DBUSER = "scott" ;
private final String DBPASSWORD = "tiger" ;
private Connection conn = null ;

public DataBaseConnection()
{
try
{
Class.forName(DBDRIVER) ;
this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
}
catch (Exception e)
{
}
}

// 取得数据库连接
public Connection getConnection()
{
return this.conn ;
}

// 关闭数据库连接
public void close()
{
try
{
this.conn.close() ;
}
catch (Exception e)
{
}
}
};
======================

package cn.mldn.lxh.vo ;

// 值对象,包含属性,setter,getter方法
public class Person
{
private String id ;
private String name ;
private String password ;
private int age ;
private String email ;

// 生成getter、setter方法
public void setId(String id)
{
this.id = id ;
}
public void setName(String name)
{
this.name = name ;
}
public void setPassword(String password)
{
this.password = password ;
}
public void setAge(int age)
{
this.age = age ;
}
public void setEmail(String email)
{
this.email = email ;
}
public String getId()
{
return this.id ;
}
public String getName()
{
return this.name ;
}
public String getPassword()
{
return this.password ;
}
public int getAge()
{
return this.age ;
}
public String getEmail()
{
return this.email ;
}
};
====================
package cn.mldn.lxh.dao ;

import java.util.* ;
import cn.mldn.lxh.vo.* ;

// 规定出了操作person表在此项目里的全部方法
public interface PersonDAO
{
// 增加操作
public void insert(Person person) throws Exception ;
// 修改操作
public void update(Person person) throws Exception ;
// 删除操作
public void delete(String id) throws Exception ;
// 按ID查询操作
public Person queryById(String id) throws Exception ;
// 查询全部
public List queryAll() throws Exception ;
// 模糊查询
public List queryByLike(String cond) throws Exception ;
}
=================
package cn.mldn.lxh.dao.impl ;
import java.sql.* ;
import java.util.* ;
import cn.mldn.lxh.vo.* ;
import cn.mldn.lxh.dbc.* ;
import cn.mldn.lxh.dao.* ;

// 此类需要完成具体的数据库操作,需要JDB代码
public class PersonDAOImpl implements PersonDAO
{
// 增加操作
public void insert(Person person) throws Exception
{
String sql = "INSERT INTO person (id,name,password,age,email) VALUES (?,?,?,?,?)" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,person.getId()) ;
pstmt.setString(2,person.getName()) ;
pstmt.setString(3,person.getPassword()) ;
pstmt.setInt(4,person.getAge()) ;
pstmt.setString(5,person.getEmail()) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
}
// 修改操作
public void update(Person person) throws Exception
{
String sql = "UPDATE person SET name=?,password=?,age=?,email=? WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,person.getName()) ;
pstmt.setString(2,person.getPassword()) ;
pstmt.setInt(3,person.getAge()) ;
pstmt.setString(4,person.getEmail()) ;
pstmt.setString(5,person.getId()) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
}
// 删除操作
public void delete(String id) throws Exception
{
String sql = "DELETE FROM person WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,id) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
}
// 按ID查询操作
public Person queryById(String id) throws Exception
{
Person person = null ;
String sql = "SELECT id,name,password,age,email FROM person WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,id) ;
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
if(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给person对象
person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
return person ;
}
// 查询全部
public List queryAll() throws Exception
{
List all = new ArrayList() ;
String sql = "SELECT id,name,password,age,email FROM person" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
while(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给person对象
Person person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;

// 将查询出来的数据加入到List对象之中
all.add(person) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
return all ;
}
// 模糊查询
public List queryByLike(String cond) throws Exception
{
List all = new ArrayList() ;
String sql = "SELECT id,name,password,age,email FROM person WHERE name LIKE ? or email LIKE ?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
// 设置模糊查询条件
pstmt.setString(1,"%"+cond+"%") ;
pstmt.setString(2,"%"+cond+"%") ;
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
while(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给person对象
Person person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;

// 将查询出来的数据加入到List对象之中
all.add(person) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
return all ;
}
};
分享到:
评论

相关推荐

    J2EE学习笔记--DAO设计模式基础.txt

    ### J2EE学习笔记——DAO设计模式基础 #### 一、引言 在J2EE(Java 2 Enterprise Edition)开发中,DAO (Data Access Object) 设计模式是一种常用的数据访问层实现方式,用于分离业务逻辑与数据访问逻辑,使得程序...

    J2EE之DAO设计模式

    本文将深入探讨DAO设计模式的概念、工作原理以及如何在J2EE环境中实现这一模式。 1. DAO设计模式概述: DAO设计模式的核心思想是创建一个接口,该接口封装了对底层数据存储的所有操作。这样,业务逻辑层只需要与DAO...

    核心J2EE模式-DAO(中文版)

    在Java企业级开发中,"核心J2EE模式-DAO(数据访问对象)"是一个至关重要的设计模式,它主要用于分离业务逻辑层与数据存储层之间的交互。DAO模式是Java开发中的一个经典模式,尤其在大型分布式系统和企业级应用中被...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例

    Struts是基于Model-View-Controller(MVC)设计模式的Web应用框架,主要用于处理HTTP请求和响应。它简化了页面与业务逻辑之间的交互,提供了动作映射、表单验证、国际化等功能,使得Web应用的开发更加规范和模块化。...

    核心J2EE模式--通用DAO的详细介绍

    ### 核心J2EE模式--通用DAO的详细介绍 #### 一、背景 在现代软件开发尤其是企业级应用中,数据持久化是一个不可或缺的部分。不同的数据源(如关系型数据库、面向对象数据库、文件系统等)往往需要使用不同的访问...

    J2EE-Struts2-Spring-Hibernate整合的例子:添加

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于简化Java Servlet和JSP的应用开发。它提供了强大的动作调度、表单处理和国际化支持,使开发者能够更专注于业务逻辑而不是底层的HTTP请求...

    J2EE--Eclipse+Struts+Hibernate+Spring

    2. **Struts**:Struts是基于MVC(Model-View-Controller)设计模式的Java Web框架,用于构建动态、数据驱动的Web应用。它提供了控制器Servlet,帮助分离业务逻辑和视图层,简化了HTTP请求处理。Struts还包含一套...

    Spring MVC大作业-J2EE-新闻管理系统

    1. **MVC 模式**:理解 MVC 设计模式的基本原理,模型(Model)负责业务逻辑,视图(View)负责显示数据,控制器(Controller)协调模型和视图之间的交互。 2. **Spring 容器**:了解 Spring 如何管理 Bean,以及...

    精通J2EE--ECLIPSE、STRUTS、HIBERNATE及SPRING整合应用案例代码-ch16

    Struts是Apache软件基金会的一个开源项目,它是基于MVC设计模式的Java Web框架。Struts负责处理HTTP请求,并将它们映射到特定的动作,进而驱动业务逻辑。它通过ActionForm对象收集表单数据,Action类执行业务逻辑,...

    J2ee -SSH整合

    1. **Struts**:Struts 是一个基于MVC(Model-View-Controller)设计模式的Web应用框架。它负责处理用户请求,并将其映射到相应的Action,进而调用业务逻辑。Struts提供了丰富的标签库,简化了视图层的开发,使得...

    精通J2EE-Eclipse+Struts+Hibernate+Spring整和应用案例-D

    Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于处理HTTP请求并将其映射到业务逻辑。它简化了Web应用程序的架构,通过Action类来处理用户请求,并利用Tiles组件来组织视图。Struts的配置文件定义...

    23种Java设计模式和15种J2EE设计模式.pdf

    在深入探讨《23种Java设计模式和15种J2EE设计模式》这一主题之前,我们首先需要明确设计模式的概念及其在软件工程中的重要性。设计模式是一种在特定情境下解决问题的模板,它描述了在软件设计中遇到的问题以及解决...

    J2ee设计模式.pdf

    J2EE(Java 2 Platform, Enterprise Edition)设计模式是针对企业级应用程序中重复出现的问题提出的解决方案,这些模式有助于改进应用程序的结构和扩展性。设计模式根据不同的需求场景分为多个类别,主要涉及Web层、...

    DAO设计模式DAO设计模式

    ### DAO设计模式详解 #### 一、概述 数据访问对象(Data Access Object,简称DAO)设计模式是一种在软件工程特别是企业级应用开发中非常常见的设计模式。它的主要目的是分离业务逻辑与数据访问逻辑,使系统架构...

    J2EE设计模式课程设计项目程序和课程设计报告

    在本项目中,"J2EE设计模式课程设计项目程序和课程设计报告"是一个实践性的学习任务,旨在让学生深入理解并应用J2EE中的核心设计模式。该项目实现了一个小型的病历资料管理系统,该系统利用了多种设计模式,如MVC...

    23种JAVA设计模式和15种J2EE设计模式

    Java和J2EE设计模式尤其在大型企业级应用开发中扮演着关键角色,它们提供了可复用、可维护和可扩展的解决方案。以下是23种Java设计模式和15种J2EE设计模式的概述: **Java设计模式** 1. **单例模式**:确保一个类...

    《J2EE核心模式》(DAO模式)

    《J2EE核心模式》是一本深入探讨Java企业级应用程序开发的经典著作,其中DAO(Data Access Object)模式是重要的设计模式之一。DAO模式的主要目的是为了解耦业务逻辑层和数据访问层,提高代码的可维护性和可测试性。...

Global site tag (gtag.js) - Google Analytics