采用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();
    }

}

我个人的感觉就是,如此优化以后,可复用的能力增强了。具体要实现或者需要修改时方便了很多。然后就是出现问题后,也便于找到是哪部分的问题,便于测试。

原文地址:https://www.cnblogs.com/xtuxiongda/p/9010825.html

时间: 2024-10-11 10:50:33

采用DTO和DAO对JDBC程序进行进一步优化的相关文章

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

PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段.完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法.持久对象是由insert数据库创建,由数据库delete删除的.基本上持久对象生命周期和数据库密切相关. VO:值对象(Value Object),通常用于业务层之间的数据传递,和PO一样也是仅仅包含

Java中几种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)

一.j2ee中,经常提到几种对象(object),理解他们的含义有助于我们更好的理解面向对象的设计思维. ORM是Object Relational Mapping[对象关系映射]的缩写 通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/RMapping的世界里, 有一系列的重要对象,常见的有VO,PO,DTO,POJO,DAO,BO. 1.Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分 (一).POJO(

使用MyBatis_Generator生成Dto、Dao、Mapping

转载地址:http://blog.csdn.net/wyc_cs/article/details/9023117 由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类.Dao接口类甚至Mapping映射文件. 一.建立表结构 CREATE TABLE `user` (   `id` varchar(50) NOT NULL,   `username` varchar(18) C

JDBC程序执行步骤--repeat

package com.lucia.repeat; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException; /** * 主要是练习jdbc程序的运行步骤 * @author lenovo * */public class JDBCRepeat {    publ

从JDBC程序看为什么需要Mybatis

package com.xuebusi.jdbc; import java.sql.*; /** * 从JDBC程序看为什么需要Mybatis * * 1.加载驱动程序和数据库连接所需要的url.用户名和密码都是写死在程序中的, * 后期更换数据库的话还要修改程序.所以最好是定义到外部的配置文件中: * * 2.SQL语句也是写死在程序中: * (1)后期如果需要修改SQL语句的话,必须修改程序,重新编译: * (2)无法达到代码重用的作用: * (3)解决方案:最好将SQL语句也能够写死在配置

PO VO BO DTO POJO DAO(转)

2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑.若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛. PO(bean,entity等命名):persistant object持久对象,数据库表中的记录在java对象中的显示状态最形象的理解就是一个PO就是数据库中的一条记录.好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象. BO(service,manager,business等命名): busin

PO BO VO DTO POJO DAO概念及其作用

J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑). 首先声明偶也不是什么高手,以下总结都是自己的体会.不对之处请您多指教. PO: persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录. 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象. BO: business object业务对

规范和封装jdbc程序代码

JDBC 部分方法引用工具类 1 package it.cast.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 public class jdbcUtils { 10 11 private static String

PO BO VO DTO POJO DAO 概念及其作用

PO BO VO DTO POJO DAO 概念及其作用(附转换图) 博客分类: java javadaovopojobo J2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑.若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛. 为了让新人快速成为牛人,今天我详细的为大家介绍这些专业名词.   企业级项目实战(带源码)地址:  http://zz563143188.iteye.com/blog/1825168 收