在中小型的开发团队或开发项目中,很多人选择了jsp+javabean的开发模式,但这种模式下,sql语句应该写在什么位置,很多人,包括我自己都会走很多的弯路。
很多书上要么推荐sql语句写在bean中,让jsp调用即可(理由是这样子比较规范),要么推荐sql语句写在jsp文件中(理由是方便开发,开发速度很快),但我在实际开发中,发现采用上述两种方式都不是很好,下面我将我的方法说一下,希望得到大家的指正。
我认为在做列表查询时,即按照某种条件查询某个表,一行一行的显示时,sql语句应该写在jsp中,因为表中肯定会有些字段需要将代码转换成实际的含义,需要两个或更多的表关联查询,如果写在bean中,则要将返回结果再用bean进行转换,这种运行方法是非常不好的,而且也会严重影响数据库的运行速度。这时,若将sql语句写在jsp中,执行放在bean中执行,这就加快了数据库的查询速度。相反如果写在bean中,开发及维护都会很不方便(因为bean基本上都是单表操作的)。
原则:
a.采用多个连接查询,将所有需要转换显示的数据项转换成相应的含义
b.sql写在jsp程序中,调用bean方法执行并得到数据结果列表
而在进行单条详细信息修改时,则这条select查询语句应该写在bean中,bean返回该记录的所有字段信息,其中包含了那些需要将代码转换成实际的含义的字段,然后再将这些字段用bean的方法得到实际含义。这个操作与关联查询操作速度是一样的。
原则:
a.写在bean中
b.jsp页面不用关心具体的sql语句,传进参数id,传出详细结果
c.需要转换显示的数据项,如果要求只读,仅作单纯的转换
d.需要转换显示的数据项,如果允许编辑,则提供下拉列表方便选择,缺省值=该数据的实际含义。