java中的DTO DAO

2023-03-31 15:26:12 来源:腾讯云 分享到:


(相关资料图)

DTO概念

DTO是Java编程中的一个常见概念,代表数据传输对象。DTO的主要目的是在不同层次之间传递数据,以避免将领域模型暴露给用户界面或持久性层。DTO通常只包含数据,而不包含任何业务逻辑。DTO也可称为VO(Value Object)或POJO(Plain Old Java Object)。

DTO用于减少应用程序中的网络通信量和内存开销。数据传输对象将数据库表映射到Java对象,并且它们通常不需要任何业务逻辑或操作。因此,DTO只是一个简单的Java对象,通常由getter和setter方法组成。

下面是一个示例DTO:

javaCopy codepublic class PersonDTO {    private String name;    private int age;    public PersonDTO(String name, int age) {        this.name = name;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}

上述示例中的PersonDTO类只有两个字段:name和age。这个类没有任何业务逻辑或操作,只是一个简单的Java对象,用于在应用程序不同层次之间传输数据。

DAO概念

DAO是Java编程中的另一个常见概念,代表数据访问对象。DAO用于与数据库交互,包括从数据库中检索数据、将数据写入数据库以及更新数据等。DAO通常被用来隔离业务逻辑和数据库操作,从而使代码更容易维护和测试。

DAO类通常包含各种查询方法,例如根据ID检索单个对象、根据属性检索对象列表、插入新对象、更新对象以及删除对象等。DAO通常使用DTO作为传输对象,从而隔离领域模型和持久性层。

下面是一个示例DAO:

javaCopy codepublic class PersonDAO {    private Connection conn;    public PersonDAO(Connection conn) {        this.conn = conn;    }    public PersonDTO getById(int id) throws SQLException {        PreparedStatement stmt = conn.prepareStatement("SELECT * FROM persons WHERE id=?");        stmt.setInt(1, id);        ResultSet rs = stmt.executeQuery();        if (rs.next()) {            String name = rs.getString("name");            int age = rs.getInt("age");            return new PersonDTO(name, age);        } else {            return null;        }    }    public List getAll() throws SQLException {        List persons = new ArrayList<>();        PreparedStatement stmt = conn.prepareStatement("SELECT * FROM persons");        ResultSet rs = stmt.executeQuery();        while (rs.next()) {            String name = rs.getString("name");            int age = rs.getInt("age");            persons.add(new PersonDTO(name, age));        }        return persons;    }    public void insert(PersonDTO person) throws SQLException {        PreparedStatement stmt = conn.prepareStatement("INSERT INTO persons(name, age) VALUES (?, ?)");        stmt.setString(1, person.getName());        stmt.setInt(2, person.getAge());        stmt.executeUpdate();    }    public void update(PersonDTO person) throws SQLException {        PreparedStatement stmt = conn.prepareStatement("UPDATE persons SET name=?, age=? WHERE id=?");        stmt.setString(1, person.getName());        stmt.setInt(2, person.getAge());        stmt.executeUpdate();    }    public void delete(PersonDTO person) throws SQLException {        PreparedStatement stmt = conn.prepareStatement("DELETE FROM persons WHERE id=?");        stmt.setInt(1, person.getId());        stmt.executeUpdate();    }}

上述示例中的PersonDAO类有一个成员变量conn,它是一个Java SQL Connection对象。PersonDAO类还有许多查询方法,例如getById、getAll、insert、update和delete等。这些方法使用预编译的SQL语句从数据库中检索数据、将数据写入数据库以及更新数据等。这些方法还使用PersonDTO作为传输对象,从而隔离领域模型和持久性层。

标签:

java中的DTO DAO

来源:腾讯云 2023-03-31 15:26:12

中金岭南:关于公司2022年业绩的情况将在定期报告中进行披露,请持续关注公司的信息披露公告中金岭南

来源:证券之星 2023-03-31 15:04:02

福建泉州至金门“小三通”客运航线4月1日起增加航次

来源:央视新闻客户端 2023-03-31 13:44:03

简讯:非深户孩子可以在深圳办理身份证吗?

来源:本地宝 2023-03-31 12:42:36

富士胶片(中国)共创加速计划 正式启动! 头条焦点

来源:创业邦 2023-03-31 11:41:29

《归路》今日甜蜜结局 井柏然谭松韵成纯爱恋爱模板-动态焦点

来源:中国网娱乐 2023-03-31 11:00:06

国家统计局:3月份采购经理指数延续扩张走势

来源:中国网财经 2023-03-31 10:36:13

京东拟再分拆两公司上市,刘强东将“手握”7家上市公司

来源:风口财经 2023-03-31 09:12:54

韩报告:受消费减少和新冠疫情影响,只有二成韩家庭还在自腌泡菜 世界快资讯

来源:环球网 2023-03-31 08:41:45

您是有多好命,才能看到此文!(我整整读了五遍,太透彻了)_环球今热点

来源:老子道德经 2023-03-31 06:57:11

微盟发布2022年报:总营收18亿元 下半年亏损环比收窄0.8亿

来源:投资界综合 2023-03-31 05:42:09

中国羽毛球队涌现2位超新星!连续击败世界名将,或背靠背夺冠!

来源:罗掌柜体育 2023-03-31 02:05:06

汤臣集团2022年收入4.6亿港元 年度溢利为1875.5万港元

来源:观点地产网 2023-03-30 22:35:13

单人练级崛起是备受期待的移动角色扮演游戏

来源:乐拇指 2023-03-30 20:26:26

每日观察!陇西福星镇:干群携手为大美福星增绿添彩

来源:看陇西 2023-03-30 19:08:05

来了!连接双机场,19号线二期最新进展

来源:天府双流 2023-03-30 18:23:48

雄安新区3月30日起启用冀X车牌

来源:中国新闻网 2023-03-30 16:52:31

勃林格殷格翰2022年年实现营收241亿欧元,未来五年将在华投资9000万欧元 环球热门

来源:互联网 2023-03-30 15:57:27

即时:朱哥霍勒迪上脚科5复刻‘小丑’配色战靴 狂砍51分8篮板8助攻

来源:天下足球最新帖子 2023-03-30 14:58:43

全国首个!江苏个体工商户破千万户_快资讯

来源:华夏时报 2023-03-30 13:55:30

看点:郭明錤:苹果镜头订单二季度预期将环比衰退35%40%

来源:互联网 2023-03-30 12:50:46

《蓝色监狱》— 不够自私也不够合作 即时

来源:哔哩哔哩 2023-03-30 11:49:21

通知来了,只免费1天!|世界时快讯

来源:百度新闻 2023-03-30 11:11:16

文化和旅游部启动边境旅游试验区、跨境旅游合作区申报工作_当前快看

来源:央广网 2023-03-30 10:25:58

每日头条!恒宝股份:3月29日获融资买入1232.57万元

来源:同花顺iNews 2023-03-30 10:12:51

天天看点:你一下我一下dj车载舞曲_你一下我一下

来源:互联网 2023-03-30 09:08:55

首批两只新能源基础设施公募REITs在上交所上市

来源:新华网 2023-03-30 07:57:29

谢道韫咏雪文言文翻译简短_谢道韫咏雪 世界新视野

来源:科学教育网 2023-03-30 06:04:11

【天天新要闻】3月29日基金净值:招商金安成长严选混合最新净值0.716,涨0.39%

来源:证券之星 2023-03-30 02:35:44

房子建设的时候需要考虑到房屋的抗震能力_环球热头条

来源:互联网 2023-03-29 22:56:44

Copyright   2015-2022 每日知识产权网 版权所有  备案号:浙ICP备2022016517号-15   联系邮箱:5 146 761 13 @qq.com