2013-06-28 3 views
0

Я имею проблему в обновлении database.It оленьей кожи обновить любое поле я edit.Please помощи У меня есть код, как показано нижеJava: не обновление данных JDBC

package model; 
import java.sql.*; 
public class Datahandler { 

    public ResultSet databaseResult(Connection c,String query) throws SQLException{ 
     Statement stmt=c.createStatement(); 
     ResultSet rs=stmt.executeQuery(query); 
     return rs; 
    } 

    public void databaseDelete(Connection c,String query) throws SQLException{ 
     Statement stmt=c.createStatement(); 
     stmt.executeUpdate(query); 
    } 

    public int databaseInsert(Connection c,Contactdb pb) throws SQLException{ 
     int rowsaffected=0; 
     try{ 
      String query="INSERT INTO contactDb (first_name,last_name,phone_number,company_name,state,city,street,building_no) VALUES (?,?,?,?,?,?,?,?)"; 
      PreparedStatement statement = c.prepareStatement(query); 
      statement.setString(1, pb.get_firstname()); 
      statement.setString(2,pb.get_lastname()); 
      statement.setString(3, pb.get_phonenumber()); 
      statement.setString(4, pb.get_companyname()); 
      statement.setString(5, pb.get_state()); 
      statement.setString(6, pb.get_city()); 
      statement.setString(7, pb.get_street()); 
      statement.setInt(8,pb.get_buildingno()); 
      statement.execute(); 
     } catch(SQLException e){ 
      e.printStackTrace(); 
     } finally { 
      c.close(); 
     } 
     return rowsaffected; 
    } 

    public int databaseUpdate(Connection c,Contactdb pb) throws SQLException{ 
     int a=0; 
     try{ 
      String query="UPDATE contactDb SET first_name=?,last_name=?,phone_number=?,company_name=?,state=?,city=?,street=?,building_no=? WHERE sn=?"; 
      a=69; 
      PreparedStatement statement = c.prepareStatement(query); 
      statement.setString(1, pb.get_firstname()); 
      statement.setString(2,pb.get_lastname()); 
      statement.setString(3, pb.get_phonenumber()); 
      statement.setString(4, pb.get_companyname()); 
      statement.setString(5, pb.get_state()); 
      statement.setString(6, pb.get_city()); 
      statement.setString(7, pb.get_street()); 
      statement.setInt(8,pb.get_buildingno()); 
      statement.setInt(9,pb.get_sn()); 
     } catch(SQLException e){ 
      e.printStackTrace(); 
     } finally{ 
      c.close(); 
     } 
     return a; 
    } 
} 

Я имею проблему в обновлении database.It не обновляет ни одно поле, которое я редактировал. Пожалуйста, помогите

+0

Для обновления U делают: 'UPDATE contactDb SET first_name = ?, last_name = ?, phone_number = ?, company_name = ?, STATE = ?, город = ?, улице = ?, building_no =? WHERE sn =? ', Который обновляет только строки, которые sn равны заданному значению, в вашем случае' pb.get_sn() '. Уверены ли строки, что 'sn = pb.get_sn()'? – Elbek

ответ

1

Метод databaseUpdate(), кажется, отсутствует statement.executeUpdate(), который будет выполнять инструкцию update.

+1

Для prepareStatement он должен быть 'подготовленStatement.executeUpdate()' в методе databaseUpdate() – Elbek

+0

Thx elbek! скорректировано имя метода – user1573133

0

Вы забыли выполнить инструкцию по обновлению базы данных после установки всех полей таблицы.

public int databaseUpdate(Connection c,Contactdb pb) throws SQLException{ 
       int a=0; 
       try{ 

        String query="UPDATE contactDb SET first_name=?,last_name=?,phone_number=?,company_name=?,state=?,city=?,street=?,building_no=? WHERE sn=?"; 
        a=69; 
        PreparedStatement statement = c.prepareStatement(query); 


        statement.setString(1, pb.get_firstname()); 
        statement.setString(2,pb.get_lastname()); 
        statement.setString(3, pb.get_phonenumber()); 
        statement.setString(4, pb.get_companyname()); 
        statement.setString(5, pb.get_state()); 
        statement.setString(6, pb.get_city()); 
        statement.setString(7, pb.get_street()); 
        statement.setInt(8,pb.get_buildingno()); 
        statement.setInt(9,pb.get_sn()); 
*statement.executeUpdate();* 

       } 


       catch(SQLException e){ 
        e.printStackTrace(); 

       } 
       finally{ 
        c.close(); 
       } 
       return a; 
       } 
      } 
+0

Рассмотрите возможность форматирования кода для удобочитаемости. – ChiaraHsieh