gpt4 book ai didi

java - 继承和DTO对象设计

转载 作者:行者123 更新时间:2023-12-01 11:26:09 30 4
gpt4 key购买 nike

我正在开发一个独立的 J2SE 应用程序(无法添加 J2EE、Hibernate、Spring 等...)。我需要设计代码架构的想法。

这是我的代码:

class PersonBean {

String name;
int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}


class PersonMapper{
PersonMapper(Connection conn){

}

PersonBean load(ResultSet rs){
PersonBean entity = new PersonBean();
entity.setId(rs.getInt("id"));
entity.setName(rs.getString("name"));
return entity;
}

PersonBean findById(int id){
String query = "SELECT * FROM Person where id = ?";

PreparedStatment stmt = conn.getPreparedStatement(query);

stmt.setInt(1, id);
ResultSet rs = stmt.executeQuery();

if (rs.next())
return load(rs);

else
return null;
}
List<PersonBean> findByName(String name) {}
}
  1. 为每个Table(mysql表)创建实体类,带有getter和setter,命名为Bean.class(PersonBean.class)
  2. 为每个表创建映射器类以检索记录该表,并填充实体。将其命名为Mapper.class(PersonMapper.class)。

我需要做些什么来改进这个设计吗?

在对象世界中,Student 对象扩展了 Person 对象。但是在数据库中Student和Person是两个不同的表,这导致为StudentBean和PersonBean创建两个不同的类,其中StudentBean不会扩展PersonBean。我需要在实体 Bean 对象层之上创建业务层吗?如果可以怎么设计?

我不知道如何开始浏览这个,任何链接也可以。

最佳答案

如果你希望能够有一个层次结构,你应该实现一个更好的映射器,它可以区分加载 Person 和 Student bean。更好的方法是自己实现,类似于 Hibernate 或 Spring 的 JdbcTemplate ...这将花费您一段时间。

但在此之前,我建议尝试一下 sql2java ,这将为您拥有的所有表生成与您类似的结构,并且还允许您自定义它,如果数据结构发生变化,可以重新生成。

关于java - 继承和DTO对象设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30798078/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com