当前位置:  技术问答>java相关

如何不把SQL语句直接写在JAVA程序代码里

    来源: 互联网  发布时间:2015-04-11

    本文导语:  前几天听人说直接把SQL语句直接写在JAVA代码里是一种不好的习惯,也是一种落后的做法,但有什么方法不这么做呢?我见过APACHE的OPEN SOURCE 里面有一个东西可以这样做,但要把它和通常的JSP,SERVLET等J2EE整合起来还是...

前几天听人说直接把SQL语句直接写在JAVA代码里是一种不好的习惯,也是一种落后的做法,但有什么方法不这么做呢?我见过APACHE的OPEN SOURCE 里面有一个东西可以这样做,但要把它和通常的JSP,SERVLET等J2EE整合起来还是很麻烦,哪位知道有什么别的办法???

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

|
同意路人甲, 一般SERVLET / JSP 包含SQL 是方便的做法, 不包含数据库的连接和操作就可以了 (用CONNECTION BEAN).

用EJB 的話, 可以更好, 分SESSION BEAN , ENTITY BEAN, 做到J2EE 的5-TIER

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

|
sql 作为参数来传递比较好

|
可以使用存储过程,对数据库操作


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

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

|
可以使用中中间服务,或者写数据库存储过程。
中间服务:介于数据库服务器与客户端之间,实现数据中转,这样可能响应速度会受影响,但对数据库安全性来说好的,可以在中间应用层加些权限判断,对于非法用户的连接请求,不予以处理。
存储过程:也是非常好的方法,即利用数据库运行复杂的计算,节省客户端与服务器的网络响应时间。

    
 
 

您可能感兴趣的文章:

  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • Mysql增加主键或者更改表的列为主键的sql语句
  • sql语句实例 取得日志条目的sql语句
  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例 iis7站长之家
  • sql语句实例 统计页面链接的sql语句
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • 一条SQL语句搞定Sql2000 分页
  • C#中验证sql语句是否正确(不执行语句)
  • SQL Server数据库的修复SQL语句
  • SQL 语句拦截 P6SPY
  • C#使用带like的sql语句时防sql注入的方法
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 在SQL Server的try...catch语句中获取错误消息代码的的语句
  • sql2005创建远程登录帐户的sql语句分享
  • SQL SERVER 查询正在实行的SQL语句
  • SQL语句中含有乘号报错的处理办法
  • sql无效字符引起的执行sql语句报错的解决方法
  • C#代码验证sql语句是否正确(只验证不执行sql)的方法
  • SQL Server中选出指定范围行的SQL语句代码
  • sql2005 大数据量检索分页的sql代码
  • 经典sql代码--解决并清除SQL被注入恶意代码的语句
  • 创建 sql server 链接服务器的sql代码
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码
  • 推荐SQL Server 重新恢复自动编号列的序号的sql代码
  • php防止sql注入代码实例
  • sql 查询所有数据库、表名、表字段的代码
  • sql 行转列示例代码
  • asp连接sql server 2005的代码
  • 一定得帮我看看sql server2000通过sql server2000jdbc driver的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 哪儿有sql server驱动程序?
  • SQL 自动审核程序 sqlautoreview
  • 为什么我下载的 “SQL Server 2000 JDBC 驱动程序” 不能安装啊?
  • MYSQL用什么编译嵌入式SQL的程序
  • 请问在哪儿可以找到SQL SERVER 2000 PERONAL的JDBC驱动程序?
  • 急,来者有分,怎样对程序中的SQL语句进行优化
  • jdbc2驱动程序for Access And SQL
  • 求连接SQL SERVER2000的驱动程序!
  • 求jsp连接SQL server 2000的驱动程序
  • 哪位能提供一个支持滚动记录集的MS SQL Server2000的JDBC驱动程序???
  • 在Java程序中怎样动态的检查SQL语句是否正确?
  • SQL Server 2000 JDBC驱动程序介绍,很值得一看!!!
  • sql server数据库有没有专门的jdbc驱动程序,若有,请教怎样获得?
  • SQL Server 7.0或2000 的jdbc驱动程序中提供了连接池的实现吗?
  • 有JDBC的SQL SERVER驱动程序下载吗?
  • 哪里有免费的对应MS SQL server的JAVA数据库驱动程序。
  • 那位由SQL Server 2000的JDBC 2/3驱动程序?
  • Linux下的C++程序怎么连接WIN2000下的SQL Server 2000?或者如何连接MySQL?
  • Linux/UNIX下,C++程序通过那些步骤访问Oracle或者Sybase SQL数据库?
  • SQL Server 2012无法连接到WMI提供程序(Cannot connect to WMI provider)解决方案
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3