java中的DTO DAO 每日消息
来源:腾讯云 发布时间:2023-03-31 14:19:07


【资料图】

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 每日消息

java中的DTO DAO 每日消息

DTO是Java编程中的一个常见概念,代表数据传输对象。DTO的主要目的是在不同层次之间传递数据,以避...更多

2023-03-31 14:19:07
天天亮点!学而不思则罔的学而是什么意思_学而不思则罔思而不学则殆的启示

天天亮点!学而不思则罔的学而是什么意思_学而不

1、只是空泛的学习,而不去思考为什么,也是无用深入学习的。2、只是一味的闭门造车,不去学习新的...更多

2023-03-31 13:08:49
环球短讯!建设全国乡村旅游目的地 山东将培育260个乡村旅游重点村

环球短讯!建设全国乡村旅游目的地 山东将培育26

齐鲁网·闪电新闻3月31日讯近日,山东省委省政府印发《关于促进文旅深度融合推动旅游业高质量发展的...更多

2023-03-31 12:23:57
万科郁亮:市场既没有“狂飙”也没有“倒春寒”,仍处于温和恢复阶段:当前报道

万科郁亮:市场既没有“狂飙”也没有“倒春寒”,

3月31日,万科举行2022年业绩会。会上,对于现阶段的市场,郁亮认为既没有“狂飙”,也没有“倒春寒...更多

2023-03-31 11:41:46
极目锐评|指望口服玻尿酸“吃出水光肌”,不如从今天开始早睡早起

极目锐评|指望口服玻尿酸“吃出水光肌”,不如从

极目锐评|指望口服玻尿酸“吃出水光肌”,不如从今天开始早睡早起---提到玻尿酸,爱美人士应该不会...更多

2023-03-31 11:07:41
隔夜欧美·3月31日|天天即时

隔夜欧美·3月31日|天天即时

①美国三大股指全线收涨,道指涨0 43%报32859 03点,标普500指数涨0 57%报4050 83点,纳指涨0 7更多

2023-03-31 10:39:38
天天微速讯:买买买!全球央行抢购黄金,股票、期货齐涨!未来金价怎么看?

天天微速讯:买买买!全球央行抢购黄金,股票、期

买买买!全球央行抢购黄金,股票、期货齐涨!未来金价怎么看?,期货,央行,加息,美联储,黄金价格更多

2023-03-31 09:24:23
声明来了!张继科否认涉赌债纠纷,从未把与景甜的私照给债主自保|滚动

声明来了!张继科否认涉赌债纠纷,从未把与景甜的

声明来了!张继科否认涉赌债纠纷,从未把与景甜的私照给债主自保,景甜,张继科,白百何,张思麟,乒乓球...更多

2023-03-31 08:02:24
莱宝高科(002106):公司未来三年股东回报规划(2024-2026年):世界速看料

莱宝高科(002106):公司未来三年股东回报规划(202

深圳莱宝高科技股份有限公司未来三年股东回报规划(2024-2026年)为完善和健全深圳莱宝高科技股份有...更多

2023-03-31 06:56:48
麻辣烫配料有哪些_麻辣烫配料是什么:今日聚焦

麻辣烫配料有哪些_麻辣烫配料是什么:今日聚焦

欢迎观看本篇文章,小勉来为大家解答以上问题。麻辣烫配料有哪些,麻辣烫配料是什么很多人还不知道...更多

2023-03-31 05:00:36

© 2012-2020 财经快报网 版权所有

网站联系邮箱:435 227 67@qq.com

琼ICP备2022009675号-3