java编程中如何编写更新sql命令

java编程中如何编写更新sql命令,java,sql,oracle,Java,Sql,Oracle,在java编程中,我面临着编写更新sql/oracle命令的问题。我的数据库是oracle。我试过这个方法,但不起作用。没有更新发生。谁能帮我一下吗 conn = ds.getConnection(); String updateQ = "update ANI_999 set First_Name='d.getName()',HouseNo='d.getAddr1()',StreetName='d.getAddr2()',AppartmentSuite='d.getAddr3()',Town_

在java编程中,我面临着编写更新sql/oracle命令的问题。我的数据库是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();
试试这个

conn.setAutoCommit(true);
以及

和查询final

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");
}
我希望能帮助你。

试试这个

conn.setAutoCommit(true);
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'
以及

和查询final

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");
}
我希望能帮助你

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\u 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();
First\u 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();

只是为了完成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.

只是为了完成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.


为了更快地获得更好的帮助,请发布一个。在SSCCE中,我们可以看到异常输出发生了什么。对不起,什么是SSCCE?。我以前没有听说过。感谢您的关注……:)检查
executeUpdate
返回的结果?Catch/log
SQLException
?第一次在此页面上出现“SSCCE”是指向文档的链接。不,在我看来你做得不对,请尝试以下操作:
String updateQ=“update ANI_999 set first_Name=?,HouseNo=?,StreetName=?,AppartmentSuite=?,Town_City=?,State=?,Postal_code=?,Country=?where CALLER_ID=?”,现在
stmt=conn.preparest陈述(updateQ)
stmt.setString(1,d.getName())等等。试试这个,我想这也可以防止SQL注入攻击。要更快地获得更好的帮助,请发布一个。在SSCCE中,我们可以看到异常输出发生了什么。对不起,什么是SSCCE?。我以前没有听说过。感谢您的关注……:)检查
executeUpdate
返回的结果?Catch/log
SQLException
?第一次在此页面上出现“SSCCE”是指向文档的链接。不,在我看来你做得不对,请尝试以下操作:
String updateQ=“update ANI_999 set first_Name=?,HouseNo=?,StreetName=?,AppartmentSuite=?,Town_City=?,State=?,Postal_code=?,Country=?where CALLER_ID=?”,现在
stmt=conn.preparest陈述(updateQ)
stmt.setString(1,d.getName())等等。试试这个,我想这也可以防止SQL注入攻击。SQL的格式不正确。选中@mprabhat suggestion谢谢您的帮助,但我无法使用此命令conn.setAutoCommit(true),上面说我应该先申报。我应该声明什么?。请提供任何帮助。。感谢您的关注。:)SQL格式不正确。选中@mprabhat suggestion谢谢您的帮助,但我无法使用此命令conn.setAutoCommit(true),上面说我应该先申报。我应该声明什么?.请提供任何帮助..感谢您的关注..:)它不起作用,当我尝试打印结果的值时,它显示此错误“无效列索引”。请提供任何帮助建议..:)我已尝试此>>pstmt.setString(1,d.getName());但我得到的结果值是0..表示它不更新任何内容。我该怎么办?第一个错误是因为我的错误,我在1周围加了引号,您已经解决了,第二个错误您可以检查“select*from ANI_99,其中调用者id=”msisdn''返回任何东西吗?我最初认为msisdn是一个硬编码值,您的代码中是否有一个变量称为msisdn?通常是指手机的标识符它不起作用,当我尝试打印结果的值时,它显示此错误“无效列索引”。。请提供任何帮助建议:)我已尝试此>>pstmt.setString(1,d.getName());但我得到的结果值是0..表示它不更新任何内容。我该怎么办?第一个错误是因为我的错误,我在1周围加了引号,您已经解决了,第二个错误您可以检查“select*from ANI_99,其中调用者id=”msisdn''返回任何东西吗?我最初认为msisdn是一个硬编码值,您的代码中是否有一个变量称为msisdn?一般指移动电话的标识符