我创建了一个类User和UserDAOImpl类,用于使用类User查询数据库。由于有一个表需要查询,这两个类对我来说已经足够了。
如果要将新字段添加到该表中的情况将被分成3个表(user_info,user_profile和user_address)以存储用户,该怎么办?
随着新字段的添加,我需要更改User和UserDAOImpl类,看来这两个还不够。似乎数据库更改会影响我的类。
在这种情况下,我是否需要将类User划分为3个类,因为表是更改? 任何人都可以建议我如何在不做太多改变的情况下解决这个问题?
答案 0 :(得分:0)
如果您的表格拆分与user_info
- user_profile
和user_address
_ user_profile
一对一(假设user_profile是主表),您可以简单地处理DAO类中的更改。
如果您将使用外键绑定表主键(关系一对一)吐出该表。那么你只需要在你的dao中调整你的查询
SELECT * FROM users WHERE id=1
到
SELECT * FROM users_profile up
JOIN user_info ui ON up.id=ui.id
JOIN user_address ua ON up.id=ua.id
WHERE up.id=1
(当然不是明星,你应该指出所需的字段,并且可能在DAO类中使用别名来更方便地访问它们)
然后相应地将值放到一个类中。
但是我会考虑更改您的类模型以适合您的数据库。特别是,user_address
中的行可以由多个用户指向。在这种情况下,我将创建类Address
并在User
类中使用它。这样,您的程序就更容易理解,也更容易开发。