2010-04-15 55 views
0

是否可以写数据库方法属性文件中,像一些数据库查询,并且可以使用servlet这可能会降低代码访问?servlet和资源文件

+0

您可能将不得不提供比此更多的上下文。然而,一般来说,让数据库访问---尽可能多的业务逻辑---在服务器端是一个不错的主意,尤其是你越不信任用户。至于“属性文件”,我不知道你在说什么。 – Steve 2010-04-15 07:33:57

+0

@Steve:http://java.sun.com/docs/books/tutorial/essential/environment/properties.html这就像Java的'.ini'文件。 – BalusC 2010-04-15 11:30:35

+0

@srikanth:你的问题很模糊。 “数据库方法”是什么?你不是指SQL语句吗?或者你的意思是真正的Java代码?你为什么想这么做? – BalusC 2010-04-15 11:32:04

回答

0
  1. 的web应用可以访问属性文件。
  2. 一个化子性质的文件可能有这样QUERY1 =选择一些键值对从某处

您可以依次在Web应用程序执行sql查询组合1和2,但我不知道它会降低代码(你还是要打开数据库连接,读取RS,关闭连接等)

+0

谢谢大家......是否有可能在属性文件中写入方法? – srikanth 2010-04-15 07:40:05

0

当然,你可以把你的查询在一个属性文件,但如果你正在使用JDBC,代码经常要看这些查询。参数的数量和顺序不能改变,结果也一样,所以我没有看到很多优点。

0

可以存储在web应用程序可以访问的文件查询,然后用准备好的语句来执行它们。通过这样做,您的查询字符串在外部文件中,您在代码中执行的所有操作都将填充参数,但您必须首先从所谓的“属性文件”中读取查询字符串。

例子:

String query; // read the query from the "properties file" 

//Suppose you put "INSERT INTO BOOKS (AUTHOR, TITLE) VALUES (?, ?);" 

PreparedStatement ps = conn.prepareStatement(query); 
ps.setString(1, "param1"); 
ps.setString(2, "param2"); 

ps.executeUpdate(); 
2

我见过DB完成工作的各种硬编码SQL的方式直接进入每一个访问数据库的方法,到SQL存储在中央文件中的静态字符串,它是存储在属性文件中,最后当然还有ORM,比如hibernate。我甚至看到SQL存储在数据库中!

我决不会建议储存远离需要它们的代码的SQL(或ORM查询)。简单的原因是,我的经验是,通过断开连接,开发人员开始重用和错误使用查询。随着时间的推移,开发人员将跟踪哪些查询在哪里使用,并开始添加新的查询以避免破坏事件的风险。最终他们最终得到的是充满查询的文件,而不知道哪些文件甚至被使用。我见过的最糟糕的情况是开发人员将SQL集中起来,并将其制作成单独的部分。几乎不可能分辨出改变是否会破坏事情。

用于分隔查询的初始参数通常是“维护”或“以防我们更改数据库”等。但是在一天结束时,它将成为比想要解决的更大的问题。

总之,我建议你保存尽可能靠近使用它们尽可能的代码查询。 Hibernate和类似的方法使得这个实用的解决方案变得很长。