-1

ネットで見つけた例の後にこのコードを書きましたが、うまくいきません。何が問題なのか教えてください。何かをしているようで、結果を出力しますが、何も変わりません。

package com.company.Start;

import java.sql.*;

public class PreparedStmt
{

 public static void main(String[] args) throws Exception
 {
  Class.forName("oracle.jdbc.OracleDriver");
  Connection con = DriverManager.getConnection("jdbc:oracle:thin:@PC:1521/XE","ACCOUNT", "password");
  PreparedStatement updateDB = con.prepareStatement("UPDATE Customers SET lname=? WHERE name=?");
  updateDB.setString(1, "Meier");
  updateDB.setString(2, "Peter");
  updateDB.execute();
  Statement smt = con.createStatement();
  String query = "SELECT * FROM customers";
  ResultSet rs = smt.executeQuery(query);
  System.out.println("NAME   LNAME   ADRESS");
  while (rs.next()) {
   String name = rs.getString("name");
   String lname = rs.getString("lname");
   System.out.println(name + " " + lname);
  }
 }
}
4

3 に答える 3

0

「... WHERE name LIKE ?」を試してください。値には「%Peter%」を入力します

空白か何かがあるので、名前が一致していないと思います。

上記により、「Peter-Alexander」や「Hans-Peter」などのエントリも変更されることに注意してください。したがって、これは値が正確に一致していないことを証明しているだけです。

于 2013-10-01T09:58:27.590 に答える