2016-09-20 61 views
1

我想一個建議的話,通常我以這種方式在數據庫上加載數據:我可以在INSERT PreparedStatement中使用命名參數嗎?

PreparedStatement prep = con.prepareStatement ("INSERT INTO TABLE (NAME, LAST NAME) VALUES (?,?)"); 
             prep.setString (1, name); 
             prep.setString (2, last name); 
             prep.executeUpdate(); 

我想辦法避免指示數據參考索引,即,我想數據發送到PreparedStatement毫無徵兆 沒有索引,我想發送數據,然後它會是API來設置正確的字段,它可以使用這樣的東西(請注意,我倒過來的名字姓,首先發送姓,並且該API應該將其添加到第二個字段中)

PreparedStatement prep = con.prepareStatement ("INSERT INTO TABLE (NAME, LAST NAME) VALUES (?,?)"); 
             prep.setString (surname, name); 
             prep.setString (NAME, name); 
             prep.executeUpdate(); 

回答

0

jdbc本身並不支持或者在預先準備的語句中命名參數。我發現this answer可能會回答你的問題。

根據您使用的數據庫(Oracle,MySQL等),您可能需要稍微不同的工具。

1

JDBC標準不支持PreparedStatement中的命名參數標記,但是,JDBC驅動程序的某些供應商實現確實支持它們 - 以下是DB2 JDBC extension的示例。檢查您的特定數據庫供應商的驅動程序實施文檔。

0

查看來自ORACLE的JAVA PreparedStatement文檔。沒有這樣的方法。

可用的方法一般是這樣的:

set...(int parameterIndex, SomeObject variableName)

相關問題