我的大学十年——林锐(转)(下)
2008-11-30 13:32
162 查看
以后做工程时:
一个操作对应一个Servlet
一个BEAN对应一张表
一张表只能由一个DAO操作
所以一个DAO中必须导入该DAO对应的BEAN
DAO类名规则:表名DAO
BEAN类名规则:表名BEAN
所以一个DAO中有多个方法 [单个信息四种操作+一个信息BEAN四种操作]
DAO中方法前缀:get - del - upd - add
public TheBean getOneBeanByID(String id){方法体}
public boolean delOneBeanByID(String id){方法体}
public boolean updOneBeanByBean(TheBean bean){方法体}
public boolean addOneBeanByBean(TheBean bean){方法体}
public List getAllBean(){}
其它的方法 - 比如只需要修改用户表中某一条的用户年龄 - 可以不必使用NEAN - 而定义成:
updOneBeanByAge
总结方法名称定义规则:
public boolean-状态/String-消息 addOneXxxBean (参数:Bean实例) {方法体}
查询时涉及一条记录:
public XxxBean getOne{Bean|字段}By{表中字段} + {方法体}
查询时涉及多条记录:
public XxxBean/List get{One|Some|All}{Bean|字段} + {By} + {表中字段|Bean} + {方法体}
public {Bean|List|boolean} {add|get|upd|del} + {One|Some|All} + {Bean|字段} + {By} + {表中字段|Bean} + {方法体}
public boolean-状态/String-消息 del{One|Some|All}BeanBy{表中字段} (参数:Bean实例) {方法体}
一般情况下By什么就传什么参数
--关于One|Some|All的意义:
One:说明方法只操作一条记录
Some:说明方法会操作多条记录
All:说明方法操作全部记录
考虑DAO中改出现哪些方法公式:
从用户操作出发,判断用户都需要哪些操作
1.具体一个操作是属于[增、查、改、删]哪一种 - 得到方法名前缀
2.该操作可能涉及到对应表的多少条记录 - 得到方法中缀 {One|Some|All}
3.该操作可能涉及到一条记录的一个字段呢,还是多个字段? - 一个字段则此处为该字段名,多个或者全部字段则此处为BEAN类名
4.该操作是通过哪些参数来完成的,实际中只可能是该表的字段名 [通过表的字段名来操作表]
参数可能是一个字段呢,还是多个字段? - 一个字段则此处取该字段名,多个或者全部字段则此处取BEAN类名
情况:如果参数是一个字段不够,但是别的参数又不属于表的字段,那么此处仍取该字段名[提示:方法会重载]
By+所需参数名 []
5.改操作之后会返回什么内容呢?
一条记录?多条记录?一条记录中的一些字段值?
思考实例1:
注册用户 = [增add]+[一条记录=One]+[可能涉及该记录的多个字段=UserBean]+[By所以需要多个字段信息为参数=UserBean] (UserBean ub)
= addOneUserBeanByUserBean(UserBean ub)
实际中增加一条记录的时候必会涉及多个字段,所以没必要写后面的By...只写成:addOneXxxBean(XxxBean xb)
必须严格按照 增 查 改 删 的顺序定义方法 - 原因:数据操作顺序
1.修改和删除的时候可能先去查询,但是前提是必须有数据 - 所以先有数据才能查询 - 所以增 > 查
2.改了之后还能删,但是删了之后就什么都不能做了,所以 - 改 > 删
3.所以 - 增 > 查 > 改 > 删
必须严格按照 先单个后一条的顺序定义方法 - 没有原因
最终方法顺序:
addOneByID > addOneByElse > addAll > updOne > updAll > delOne > delAll > getOne > getAll
一个DAO中必须出现的方法:如上
结论:表中的一条记录当做一个BEAN对象 [Hibernate就是这么来的]
DAO操作数据时不只操作增 查 改 删,或许还有数据检查方法。例如:非空性+重复数据等
如果一个DAO中的方法需要一些非操作数据的方法时,则该方法出现在util包下的类中。
至于方法体如何书写 - 参照另一个文件 - 妙计锦囊:如何写方法
所以DAO中方法的名称应该和Servlet类名一致
最终包名顺序: com.xxx.bean --
com.xxx.model
com.xxx.dao ↑
com.xxx.servlet ↑
com.xxx.util
请求 ↑
三层的关系是不是很清楚呢 ?
一个Servlet只针对一个请求
要求:
一个Servlet只能有一个DAO实例
一个DAO类只能使用一个BEAN实例
一个请求[请求参数][V-视图]
->>
一个Servlet[整合参数][C-控制][DAO实例-调用具体方法]
->>
一个DAO
---------------------------局限性
Servlet依赖于DAO - DAO依赖于BEAN [尽管是单向依赖]
但是:一旦工程变动 - 则Servlet可能需要重新获取新的DAO实例,DAO所依赖的BEAN也可能修改
由此可见Spring的好处:
依赖注入 - 只须配置文件给出Servlet中的DAO引用即可。后期只需要修改配置文件即可,无须打开Servlet
====================
web.xml文件中<servlet-mapping>的<url-pattern>必须是根目录 - 即:/XxxxServlet
=================
Servlet类取名规则:NEAN类名+动作+Servlet
可能的动作包括:Add - Del - Upd - Get - Load
如果动作时Load:则Load和NEAN类名之间还应出现{One|All|Some}
本文出自 “OtxAcme” 博客,转载请与作者联系!
一个操作对应一个Servlet
一个BEAN对应一张表
一张表只能由一个DAO操作
所以一个DAO中必须导入该DAO对应的BEAN
DAO类名规则:表名DAO
BEAN类名规则:表名BEAN
所以一个DAO中有多个方法 [单个信息四种操作+一个信息BEAN四种操作]
DAO中方法前缀:get - del - upd - add
public TheBean getOneBeanByID(String id){方法体}
public boolean delOneBeanByID(String id){方法体}
public boolean updOneBeanByBean(TheBean bean){方法体}
public boolean addOneBeanByBean(TheBean bean){方法体}
public List getAllBean(){}
其它的方法 - 比如只需要修改用户表中某一条的用户年龄 - 可以不必使用NEAN - 而定义成:
updOneBeanByAge
总结方法名称定义规则:
public boolean-状态/String-消息 addOneXxxBean (参数:Bean实例) {方法体}
查询时涉及一条记录:
public XxxBean getOne{Bean|字段}By{表中字段} + {方法体}
查询时涉及多条记录:
public XxxBean/List get{One|Some|All}{Bean|字段} + {By} + {表中字段|Bean} + {方法体}
public {Bean|List|boolean} {add|get|upd|del} + {One|Some|All} + {Bean|字段} + {By} + {表中字段|Bean} + {方法体}
public boolean-状态/String-消息 del{One|Some|All}BeanBy{表中字段} (参数:Bean实例) {方法体}
一般情况下By什么就传什么参数
--关于One|Some|All的意义:
One:说明方法只操作一条记录
Some:说明方法会操作多条记录
All:说明方法操作全部记录
考虑DAO中改出现哪些方法公式:
从用户操作出发,判断用户都需要哪些操作
1.具体一个操作是属于[增、查、改、删]哪一种 - 得到方法名前缀
2.该操作可能涉及到对应表的多少条记录 - 得到方法中缀 {One|Some|All}
3.该操作可能涉及到一条记录的一个字段呢,还是多个字段? - 一个字段则此处为该字段名,多个或者全部字段则此处为BEAN类名
4.该操作是通过哪些参数来完成的,实际中只可能是该表的字段名 [通过表的字段名来操作表]
参数可能是一个字段呢,还是多个字段? - 一个字段则此处取该字段名,多个或者全部字段则此处取BEAN类名
情况:如果参数是一个字段不够,但是别的参数又不属于表的字段,那么此处仍取该字段名[提示:方法会重载]
By+所需参数名 []
5.改操作之后会返回什么内容呢?
一条记录?多条记录?一条记录中的一些字段值?
思考实例1:
注册用户 = [增add]+[一条记录=One]+[可能涉及该记录的多个字段=UserBean]+[By所以需要多个字段信息为参数=UserBean] (UserBean ub)
= addOneUserBeanByUserBean(UserBean ub)
实际中增加一条记录的时候必会涉及多个字段,所以没必要写后面的By...只写成:addOneXxxBean(XxxBean xb)
必须严格按照 增 查 改 删 的顺序定义方法 - 原因:数据操作顺序
1.修改和删除的时候可能先去查询,但是前提是必须有数据 - 所以先有数据才能查询 - 所以增 > 查
2.改了之后还能删,但是删了之后就什么都不能做了,所以 - 改 > 删
3.所以 - 增 > 查 > 改 > 删
必须严格按照 先单个后一条的顺序定义方法 - 没有原因
最终方法顺序:
addOneByID > addOneByElse > addAll > updOne > updAll > delOne > delAll > getOne > getAll
一个DAO中必须出现的方法:如上
结论:表中的一条记录当做一个BEAN对象 [Hibernate就是这么来的]
DAO操作数据时不只操作增 查 改 删,或许还有数据检查方法。例如:非空性+重复数据等
如果一个DAO中的方法需要一些非操作数据的方法时,则该方法出现在util包下的类中。
至于方法体如何书写 - 参照另一个文件 - 妙计锦囊:如何写方法
所以DAO中方法的名称应该和Servlet类名一致
最终包名顺序: com.xxx.bean --
com.xxx.model
com.xxx.dao ↑
com.xxx.servlet ↑
com.xxx.util
请求 ↑
三层的关系是不是很清楚呢 ?
一个Servlet只针对一个请求
要求:
一个Servlet只能有一个DAO实例
一个DAO类只能使用一个BEAN实例
一个请求[请求参数][V-视图]
->>
一个Servlet[整合参数][C-控制][DAO实例-调用具体方法]
->>
一个DAO
---------------------------局限性
Servlet依赖于DAO - DAO依赖于BEAN [尽管是单向依赖]
但是:一旦工程变动 - 则Servlet可能需要重新获取新的DAO实例,DAO所依赖的BEAN也可能修改
由此可见Spring的好处:
依赖注入 - 只须配置文件给出Servlet中的DAO引用即可。后期只需要修改配置文件即可,无须打开Servlet
====================
web.xml文件中<servlet-mapping>的<url-pattern>必须是根目录 - 即:/XxxxServlet
=================
Servlet类取名规则:NEAN类名+动作+Servlet
可能的动作包括:Add - Del - Upd - Get - Load
如果动作时Load:则Load和NEAN类名之间还应出现{One|All|Some}
本文出自 “OtxAcme” 博客,转载请与作者联系!
相关文章推荐
- 林锐:我的大学十年
- 林锐:我的大学十年
- 林锐:我的大学十年
- 林锐:我的大学十年
- 林锐:我的大学十年
- 林锐 我的大学十年
- 我的大学十年——林锐(转)(上)
- 林锐:我的大学十年
- 林锐-我的大学十年
- 林锐:我的大学十年
- 林锐:我的大学十年(西电校友) 2011-2-26 23:36
- 【收藏,自勉】林锐:我的大学十年
- 大学十年(一个程序员的路程)-西电技物院林锐博士
- 大学十年(一个程序员的路程)(林锐博士)《1----9》
- 林锐:我的大学十年
- 程序人生:大学十年——林锐
- 林锐的《大学十年》给我最深刻的几句话
- 我的大学十年——林锐
- 大学十年(一个程序员的路程)(林锐博士)《1----9》 收藏
- 林锐-《我的大学十年》