如何发送参数作为字符串

问题描述:

我试图做到以下几点:如何发送参数作为字符串

String dbURL= "jdbc:oracle:thin:@HOST:PORT:DB,USERNAME,PASSWORD"; 
//Statement stmt = conn.createStatement(dbURL); 

conn.createStatment期待3个参数,而不是1串,所以我得到一个错误。是否有可能将它们全部放在一个字符串中并通过它?我知道这不是解决这个问题的正确方法,但我也要求将来的参考。

编辑:我的错误。我的意思是

Connection conn = DriverManager.getConnection(URL) 
+3

你的代码没有意义。您将SQL传递给'createStatement'方法,而不是JDBC URL。你会使用URL来获得'Connection'对象。 – skaffman 2010-12-16 12:54:05

+0

编辑原始帖子 – code511788465541441 2010-12-16 13:35:03

改为使用PreparedStatement。它应该将SQL查询作为参数。您的连接字符串应该被传递到DriverManager.getConnection()方法

正如其他人所指出的那样,你在做什么,只是将无法工作。使用这个:

String dbURL= "jdbc:oracle:thin:@HOST:PORT:DB,USERNAME,PASSWORD"; 
Connection conn = DriverManager.getConnection(dbURL); 
PreparedStatement ps = conn.prepareStatement("your SQL"); 

第一行是你的数据库URL。

第二线将得到使用DB URL的实际连接。

第三行可以让你从你的连接得到事先准备好的声明。

这种模式被广泛使用,所以你应该使用它太(除非您在Java EE,其中获得数据库连接的工作原理有点不同是)。

使用JDBC需要几个步骤。通常他们是:

  1. 创建连接;
  2. 创建语句(或准备语句);
  3. 执行语句;
  4. 处理结果;
  5. 关闭资源(结果集,语句,连接)。

我有你不知道的JDBC基础知识的感觉。看看JDBC tutorial

+0

你甚至读过我的问题 – code511788465541441 2010-12-16 15:25:36

+0

是的,我做过。这个问题非常混乱,因为它讲的是'conn.createStatement'及其3个参数,然后是'DriverManager.getConnection'。您可以编辑问题以使其更清晰。 – 2010-12-16 15:38:10