采用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程序进行进一步优化的更多相关文章

  1. 浅谈数据库技术,磁盘冗余阵列,IP分配,ECC内存,ADO,DAO,JDBC

    整理-----数据库技术,磁盘冗余阵列,IP分配, ECC内存,ADO, DAO,JDBC 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发.发布和支持.My ...

  2. Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分

    PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数 ...

  3. mybatis由浅入深day01_1课程安排_2对原生态jdbc程序中问题总结

    mybatis 第一天 mybatis的基础知识 1 课程安排: mybatis和springmvc通过订单商品 案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开 ...

  4. 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 ...

  5. pojo、po、dto、dao、bo区别

    j2ee中,经常提到几种对象(object),理解他们的含义有助于我们更好的理解面向对象的设计思维.     POJO(plain old java object):普通的java对象,有别于特殊的j ...

  6. Java中各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分

    PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数 ...

  7. PO VO BO DTO POJO DAO(转)

    2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑.若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛. PO(bea ...

  8. JavaEE PO VO BO DTO POJO DAO 整理总结

    佩服能将复杂难懂的技术,抽象成简单易懂事物的人. 厌恶将简单易懂的技术,添加一堆专业术语将别人弄的头晕目眩的人. PO VO BO DTO POJO DAO 总体一览: 1.DAO[data acce ...

  9. 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)

    PMD是一款采用BSD协议发布的Java程序代码检查工具.该工具可以做到检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等.该软件功能强大,扫描效率高,是Java程序员 ...

随机推荐

  1. 1007. Minimum Domino Rotations For Equal Row

    In a row of dominoes, A[i] and B[i] represent the top and bottom halves of the i-th domino.  (A domi ...

  2. 629. K Inverse Pairs Array

    Given two integers n and k, find how many different arrays consist of numbers from 1 to n such that ...

  3. 【新题】OCP 062题库出现很多新题-6

    6.Which four statements are true about database instance behavior? A) Redo log files can be renamed ...

  4. jzoj5945

    這題是均分紙牌求方案數 我們可以分2種情況討論: 1.當前面部分的平均值>=現在我們要的值 那麼我們可以把所有牌都放到第i個點,現在若有k張牌,則要把k−i∗avek-i*avek−i∗ave張 ...

  5. hdoj1175 连连看(dfs+剪枝)

    处理连连看问题. 要求拐弯方向不多于两次.剪枝很重要!!! 用dir记录当前方向.Orz,居然没想到. #include<iostream> #include<cstring> ...

  6. 位域(bit fields)简介

    使用位域或位操作移动一个字节中的位 Java中EnumSet代替位域代码详解 关于位域的一些东西 深入理解Java枚举类型(enum) 位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个 ...

  7. 在vue项目中使用swiper2.7.6

    $ npm install swiper@2.7.6 --save-dev npm WARN rollback Rolling back node-pre-gyp@0.10.0 failed (thi ...

  8. WebDriver高级应用实例(1)

    1.1使用JavaScriptExecutor单击元素 被测网页的网址: http://www.baidu.com Java语言版本的API实例代码 import org.testng.annotat ...

  9. PCA(主成分分析)和LDA详解

    http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html http://www.c ...

  10. django框架--底层架构

    目录 零.参考 一.对于web服务的理解 二.对于wsgi协议的理解 三.自定义一个简单的基于wsgi协议的web框架 四.django中的server实现 五.django中的application ...