实际上如果要程序员自己在程序里面写sql文的话,说明模块间的耦合度已经很高了(详情可参见《建模鸡汤》一文)。一般都是把sql文提到专门的文件中,由专门的数据库人员书写。程序员只要在用的时候取出来,设上参数就行了。

解决方案 »

  1.   

    sql 作为参数来传递比较好
      

  2.   

    用Data Access Object, Data Access Object 內有SQL, 但不作BUSINESS LOGIC, 由SESSION BEAN 做BUSINESS LOGIC
      

  3.   

    通常是这样讲,SQL写到JAVA里的那些JAVA类是真正实现业务逻辑的类,这些类不包含数据库的连接和操作,数据库的连接和操作是写在另外的类里。如果包含数据库连接和操作的话,才是说是一种不好的习惯。
      

  4.   

    存储过程不是好方法, 用存储过程一定有部份BUSINESS LOGIC 落到BACKEND DB LAYER, BUSINESS LOGIC 更改時要DB內更改, 同時不能輕易作DB ENGINE 轉換 (例如由SQL SERVER 到ORACLE, 存储过程不一定可以運行). 不合MULTI-TIER 的原則
      

  5.   

    同意路人甲, 一般SERVLET / JSP 包含SQL 是方便的做法, 不包含数据库的连接和操作就可以了 (用CONNECTION BEAN).用EJB 的話, 可以更好, 分SESSION BEAN , ENTITY BEAN, 做到J2EE 的5-TIER
      

  6.   

    谢谢各位高人的指点。实际上我目前用的是 skyyoung(路人甲) 说的那种方法,但还是觉得麻烦。我准备有空了写一个API,将通常用的SQL操作封装起来,使用时只要往里面传些参数就行。APACHE 的 TURBINE就有这样的功能,我得先把它的源码研究研究。