对于一个注册用户,一个是管理员
用户对于消息的查询是只能查询自己的消息,所以需要sql里需要用户名这个参数.
而管理员查询就不需要这个参数.
现在对于DAO的设计,感到有点困惑(新手).比如说findAll这个方法需不需要加username这个参数啊????对于用户个人自己的查询似乎都需要这个username这个参数.而对于管理员来说,它就不需要这个参数.设计成两个接口,应该是可以的,不过对于用户那个DAO接口里的方法似乎都需要username这个参数(可以将参数用一个field来代替),但是还是感觉这样设计问题很多.不知道怎么解决.希望指点下
用户对于消息的查询是只能查询自己的消息,所以需要sql里需要用户名这个参数.
而管理员查询就不需要这个参数.
现在对于DAO的设计,感到有点困惑(新手).比如说findAll这个方法需不需要加username这个参数啊????对于用户个人自己的查询似乎都需要这个username这个参数.而对于管理员来说,它就不需要这个参数.设计成两个接口,应该是可以的,不过对于用户那个DAO接口里的方法似乎都需要username这个参数(可以将参数用一个field来代替),但是还是感觉这样设计问题很多.不知道怎么解决.希望指点下
根据具体情况调用哪个。findAll()
findUsername(String username)
关于这个接口方法增加username作为参数,没有什么不可的,当然你也可以制作一个查询类Query,将需要的查询参数作为Query的属性。这样DAO就只需要一个
Query做为参数。
至于调用哪个可以在logic层判断
你简直多虑了,DAO是一个访问数据库的基础设施,你不这样做,你想怎么做?看样子关于设计还是要练兵才行啊
不考虑权限的话我怎么觉的应该建立两个方法啊,
管理员使用findAllUserMessage(){}
用户使用findAllMessage(String userName){}
这样是不是好点...........
个人看法
public List findAll(String username){//当身份为用户的时候username,当是管理员时就传一个null值,
if(username!=null){//判断是不是用户,为用户时执行相应操作
.............
}else{){//执行管理员相应操作 ...........
}
}