1

Javaプログラミングでupdate sql/oracleのコマンドを書く問題に直面しています。私のデータベースはオラクルです。この方法を試してみましたが、うまくいきませんでした。更新はありません。誰でも親切にこれについて私を助けてください?

conn = ds.getConnection();

String updateQ = "update ANI_999 set First_Name='d.getName()',HouseNo='d.getAddr1()',StreetName='d.getAddr2()',AppartmentSuite='d.getAddr3()',Town_City='d.getTownCity()',State='d.getState()',Postal_Code='d.getPostalCd()',Country='d.getCountry()' where CALLER_ID = 'msisdn'";

stmt = conn.prepareStatement(updateQ);
int result = stmt.executeUpdate(updateQ);

conn.commit();
conn.close();
4

3 に答える 3

4
update ANI_999 set First_Name='d.getName()',HouseNo='d.getAddr1()',StreetName='d.getAddr2()',AppartmentSuite='d.getAddr3()',Town_City='d.getTownCity()',State='d.getState()',Postal_Code='d.getPostalCd()',Country='d.getCountry()' where CALLER_ID = 'msisdn'

First_Name='d.getName()'d.getName()他のすべてのフィールドと同様に、メソッドの値に置き換えられるのではなく、そのまま実行されます。

代わりにこれを試してください:

String query = "update ANI_999 set first_name = ? where caller_id = 'msisdn'";

PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1, d.getName());

int result = pstmt.executeUpdate();
于 2012-05-21T03:08:04.503 に答える
0

これを試して、

conn.setAutoCommit(true);

と、

Statement st = conn.createStatement();

そしてクエリファイナル、

String updateQ = "update ANI_999 set First_Name='d.getName()',HouseNo='d.getAddr1()',StreetName='d.getAddr2()',AppartmentSuite='d.getAddr3()',Town_City='d.getTownCity()',State='d.getState()',Postal_Code='d.getPostalCd()',Country='d.getCountry()' where CALLER_ID = 'msisdn'";

if(st.execute(updateQ)) {
    System.out.println("UPDATE! SUCCESS");
}

お役に立てれば幸いです。

于 2012-05-21T03:03:35.103 に答える
0

mprabhatの回答を完了するためだけに、次のようなものを使用する必要があります

String query = "update ANI_999 set first_name = ? where caller_id = ?"; 

PreparedStatement pstmt = conn.prepareStatement(query); 
pstmt.setString(1, d.getName()); 
pstmt.setString(2, msisdn); 

int result = pstmt.executeUpdate(); 
conn.commit() // in case no autocommit is set.
于 2012-05-21T10:16:41.743 に答える