每一条订单都与一个用户关联
在设计数据库时,我们都是这样设计的:
建一个订单表,建一个用户表
订单表里有一个字段userID,引用用户表(外键)
那么请问把二者转成JavaBean时,如何设计好?
方案一:
Order中设一个成员userID(int型),代表用户编号,
当需要得到用户的名字时,先order.getUserID() 再用这个ID
另外再调用另外的方法(需要再次连接数据库),再取得名字
方案二:
Order中设一个成员User(User Bean型),要取得用户的姓名时,直接
order.getUser().getName()
请问哪种方案好?
在设计数据库时,我们都是这样设计的:
建一个订单表,建一个用户表
订单表里有一个字段userID,引用用户表(外键)
那么请问把二者转成JavaBean时,如何设计好?
方案一:
Order中设一个成员userID(int型),代表用户编号,
当需要得到用户的名字时,先order.getUserID() 再用这个ID
另外再调用另外的方法(需要再次连接数据库),再取得名字
方案二:
Order中设一个成员User(User Bean型),要取得用户的姓名时,直接
order.getUser().getName()
请问哪种方案好?
解决方案 »
- 高分求解,点聚WEBOFFICE结合JAVA上传问题????
- 一个小问题:大家用Spring的时候是如何划分xml配置文件的?
- 分页的效率
- 高手进来看看这个错误怎么解决,谢谢!
- 如何优化千万数据量运算?
- 急:如何将上传的文件保存到硬盘上?
- WebService能否实现推送功能?
- 怎样用javascript禁止用户输入="`~#$%^&*-=\|/?¡¡ ·#¥%《》<>等等(所列符号一个都不许输入)换句话就是只许输入中文字符
- 循环中参数怎么传递, 并传给另一页面?
- 做企业微信小程序时无法获取code
- ---Spring 中的DispaterServlet 是怎么找到SimpleUrlHandlerMapping 这个bean实例的?
- Invalid chunk ignored
他们都是独立的一个对象而已,关键看你如何实现业务逻辑,你的sql查询语句怎么实现
javaBean只是负责存储相关信息,是一个独立的对象!java(面向对象)
class Student{
private String name;
private String number; String getName(){
return this.name;
}
String setName(String name){
this.name=name;
}
//number属性也这样写
}
class number{
private Student userID;--主外键关系
private String .....;
....
}
我想你的意思是在order中写一个类似于:getUserName(int userID)这样的方法,
那么order这个类就要去"管"怎么取到user的属性
而这不应该由order来负责的第二种,就是user的属性由user的方法来取
order.getUser(),返回的就是一个User对象A,我就可以按照使用User对象一样来使用A
要取User的name就A.getName(),至于怎么取,order不用管,只需要调user类的getName()方法.区别就在于,第一种如果getUserName的实现方式变了,
那么就要到所有用到user的类中(order了,company了)去修改getUserName(int userID)方法.
(当然你可以把这个方法写到一个publicFunction类中,但是这样还是不够面向对象,"职责"也不够清楚)第二种,使用user的类们,不用管user的name啊,id啊,sex啊什么的属性是怎么get到的
这些类们只管取到user对象的引用然后调用get方法就可以了--------------
就像你老板让你办事
给我拿报表来,给我拿数据来
老板只管叫:拿来
你只要给
老板不管你怎么弄出来的总不可能老板要你拿来
你告诉老板先mysql -h -uXXX -pXXX
然后 use database
然后 selct XXXX然后在很温馨的告诉老板:"
如果觉得每次都写很麻烦
你可以写在一个文件中
每次要看运行一下就可以了" ^_^老板不开了你
使用getOrders(User u)
而不要使用getOrders(int userID)
也就是
User user=getUser(userID);
List orders=getorders(user);