采用DTO和DAO对JDBC程序进行进一步优化
采用DTO和DAO对JDBC程序进行进一步优化
DTO:数据传输对象,主要用于远程调用等需要远程调用对象的地方
DAO:数据访问对象,主要实现封装数据库的访问,通过它可以把数据库中的表转换成DTO类
引入DTO其实就是新建实体类。
那么DAO呢,就是封装访问数据的方法,比如对某一个表插入,更新,删除等方法可以放进对应的dao中
代码如下:
这是访问User表所使用方法的接口,里面放的是访问过程中会使用到时方法
public interface UserDao {
public void save(Connection conn,User user) throws SQLException; public void update(Connection conn,User user) throws SQLException; public void delete(Connection conn, User user) throws SQLException;
}
这是接口的具体实现类,具体实现那些访问表的方法
public class UserDaoimpl implements UserDao { @Override
public void save(Connection conn, User user) throws SQLException {
// TODO Auto-generated method stub
PreparedStatement ps=conn.prepareCall("insert into tbl_user(name,password,email)"
+ "values(?,?,?)");
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
ps.setString(3, user.getEmail());
ps.execute();
} @Override
public void update(Connection conn, User user) throws SQLException {
// TODO Auto-generated method stub
PreparedStatement ps=conn.prepareCall("update tbl_user set name=?,password=?,email=? where name=?");
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
ps.setString(3, user.getEmail());
ps.setString(4, user.getName());
ps.execute();
} @Override
public void delete(Connection conn, User user) throws SQLException {
// TODO Auto-generated method stub
PreparedStatement ps=conn.prepareCall("delete from tbl_user where id =?");
ps.setLong(1, user.getId());
ps.execute();
} }
我个人的感觉就是,如此优化以后,可复用的能力增强了。具体要实现或者需要修改时方便了很多。然后就是出现问题后,也便于找到是哪部分的问题,便于测试。
采用DTO和DAO对JDBC程序进行进一步优化的更多相关文章
- 浅谈数据库技术,磁盘冗余阵列,IP分配,ECC内存,ADO,DAO,JDBC
整理-----数据库技术,磁盘冗余阵列,IP分配, ECC内存,ADO, DAO,JDBC 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发.发布和支持.My ...
- Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数 ...
- mybatis由浅入深day01_1课程安排_2对原生态jdbc程序中问题总结
mybatis 第一天 mybatis的基础知识 1 课程安排: mybatis和springmvc通过订单商品 案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开 ...
- 5.23Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
作者:https://www.cnblogs.com/lyjin/p/6389349.html PO:持久对象(persistent object):---po就是在Object/Relation M ...
- pojo、po、dto、dao、bo区别
j2ee中,经常提到几种对象(object),理解他们的含义有助于我们更好的理解面向对象的设计思维. POJO(plain old java object):普通的java对象,有别于特殊的j ...
- Java中各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数 ...
- PO VO BO DTO POJO DAO(转)
2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑.若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛. PO(bea ...
- JavaEE PO VO BO DTO POJO DAO 整理总结
佩服能将复杂难懂的技术,抽象成简单易懂事物的人. 厌恶将简单易懂的技术,添加一堆专业术语将别人弄的头晕目眩的人. PO VO BO DTO POJO DAO 总体一览: 1.DAO[data acce ...
- 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)
PMD是一款采用BSD协议发布的Java程序代码检查工具.该工具可以做到检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等.该软件功能强大,扫描效率高,是Java程序员 ...
随机推荐
- 文件操作(FILE)与常用文件操作函数
文件 1.文件基本概念 C程序把文件分为ASCII文件和二进制文件,ASCII文件又称文本文件,二进制文件和文本文件(也称ASCII码文件)二进制文件中,数值型数据是以二进制形式存储的, 而在文本文件 ...
- AndroidManifest.xml文件安全探索
本文作者:i春秋签约作家——icq8756c1a2 最近在做一些apk的安全检测,对AndroidManifest.xml文件进行了研究和探讨,介绍AndroidManifest.xml文件的作用和架 ...
- 详述MySQL服务在渗透测试中的利用
本文作者:i春秋签约作家——Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...
- webpack快速入门——如何安装webpack及注意事项
1.window+R键,输入cmd打开命令行工具,输入 mkdir XXXX(XX:文件夹名): 2.cd XXX 进入刚刚创建好的文件夹里,输入cnpm install -g webpack (安装 ...
- SSH版最大会话连接数
在登录方法中加入如下两行语句,作为程序的入口: SessionListener.isAlreadyEnter(getHttpRequest().getSession(),this.getUserCod ...
- 非常好用的@ResponseBody注解
AJAX的写法: ajax接收json格式: ①如果ajax接收的是text dataType:"text", var json = eval("(" + da ...
- numpy的ravel()和flatten()函数比较
功能 两个函数的功能都是将多维数组降为一维. 用法 import numpy as np arr = np.array([[1, 2],[3, 4]]) arr.flatten() arr.ravel ...
- OpenRefine导入CSV文件,数据清理后导出JSON格式
第一步:选择要转换的CSV文件. 第二步:选择以逗号分割,并创建项目. 第三步:编辑,去掉特殊字符 Edit Cells > Transform... 第四步:导出文件,选择“Templatin ...
- 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 1、经常提及的问题
Frequently Asked Questions Congratulations to be part of the first class of the Deep Learning Specia ...
- Mac 下安装node.js(转载)
原文地址:http://blog.csdn.net/u011619283/article/details/52368759 Node.js 简介 Node.js 是一个用Chrome's V8 Jav ...