类设计结构图
异常的处理通过一个继承自RuntimeException的异常处理类捕获,然后在Service层可以捕获,这样有个好处,如果是Jdbc实现的Dao,可能会抛出SQLException这个异常,但是如果是Hibernate实现的Dao,因为不存在SQLException,所以如果更改实现的方法的话会导致service层捕获异常的时候需要做相应的修改..
使用下面方法,用一个继承自RuntimeException的类,从而可以只修改实现类
package com.royzhou.exception;
public class DaoException extends RuntimeException {
private static final long serialVersionUID = 2102076276311052301L;
public DaoException() {
}
public DaoException(String message) {
super(message);
}
public DaoException(Throwable cause) {
super(cause);
}
public DaoException(String message, Throwable cause) {
super(message, cause);
}
}
//添加用户的方法
public void addUser(User user) {
Connection conn = null;
PreparedStatement ps = null;
String sql = "";
try {
sql = "insert into user values (null,?,?,?,null)";
conn = DbUtils.getConnection();
ps = conn.prepareStatement(sql);
int i = 1;
ps.setString(i++, user.getUserName());
ps.setString(i++, user.getLoginId());
ps.setString(i++, user.getPassword());
ps.executeUpdate();
} catch(Exception e) {
//抛出异常DaoException
throw new DaoException(e.getMessage(),e);
} finally {
DbUtils.close(ps);
DbUtils.close(conn);
}
}
dao的获取通过一个单例工厂获得,通过一个daoConfig.properties可配置各个dao实现类,使得配置更加灵活
package com.royzhou.factory;
import java.io.InputStream;
import java.util.Properties;
import com.royzhou.dao.UserDao;
public class DaoFactory {
private UserDao userDao = null;
Properties prop = null;
private static DaoFactory daoFactory = new DaoFactory();
private DaoFactory() {
prop = new Properties();
InputStream is = DaoFactory.class.getClassLoader().getResourceAsStream("daoconfig.properties");
try {
prop.load(is);
} catch (Throwable e) {
throw new ExceptionInInitializerError(e);
}
}
public static DaoFactory getInstance() {
return daoFactory;
}
public UserDao getUserDao() {
String userDaoClass = prop.getProperty("userDao");
try {
userDao = (UserDao)Class.forName(userDaoClass).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return userDao;
}
}
- 大小: 22 KB
- 大小: 13.1 KB
分享到:
相关推荐
JDBCDao分层模型
一个简单的留言网上留言系统,适合初学者学习,希望大家喜欢
为了降低耦合性,提出了DAO封装数据库操作的设计模式,本例程实现了利用DAO设计模式,对数据表进行增、删、改、查,可以通过控制台输入数字1,2,3,4,实现对数据库的操作。
java编程技术-JDBC数据库访问。主要介绍了: PostgreSQL数据库简介 ;Java数据库技术概述;传统的数据库连接方法;使用数据源连接数据库;预处理语句;DAO设计模式介绍。
sqljdbc_auth.dll 支持64位,在Java程序使用SSL加密方式连接到sqlserver时非常有用。
sqljdbc_3.0 sqljdbc_3.0sqljdbc_3.0sqljdbc_3.0sqljdbc_3.0sqljdbc_3.0sqljdbc_3.0sqljdbc_3.0sqljdbc_3.0
hive_jdbc_2.6.2.1002
PI-JDBC_2018 PI数据库JDBC包用于连接PI数据库 2018版本2018版本2018版本
Server_JDBC_Driver_20_EULA_CHS
来自微软官网的java连接sqlserver2008驱动包,jdk1.5及以上的请使用sqljdbc4.jar,并且内含64位和32位的sqljdbc_auth.dll
连续发几个都是为了jsp servlet学习用的资料,下载学习吧,有基础有深入
1. 将 sqljdbc_<版本>_<语言>.exe 下载到一个临时目录。 2. 运行 sqljdbc_<版本>_<语言>.exe. 3. 按照提示输入安装目录。我们建议您将此 zip 文件解压缩到 %ProgramFiles% 中的默认目录下:"Microsoft JDBC Driver...
个人完整的源码安装步骤,希望对你有用。亲测可用。Centos6.2下以JDBC驱动连接任意数据库实现读操作
Microsoft SQL Server JDBC Driver 3.0.JSP驱动。
greenplum java 驱动。版本:5.1.4. greenplum官方的驱动。 greenplum是postgresql集群支持。
JDBC(Java Database Connectivity, Java 数 据 库 连 接)是 一 种可用于执行 SQL 语句的 Java API(Application Programming Interface, 应用程序设计接口)。它由一些 Java 语言编写的类和接口组成。JDBC 为数据库...
基于JSP+Servlet+JavaBean+JDBC+DAO的Web架构设计该系统,进一步了解并掌握如何对数据库进行操作,以及如何分析、设计一个应用系统。 需求要求: 该系统的基本需求是,系统要实现如下的基本管理功能: (1)用户分为...
sqljdbc_2.0主要用于连接SQL Server数据库和java开发平台Eclipse,资源里边还附有安装过程。
常用_JDBC_驱动名字和_URL_列表