2012-07-23 93 views
0

有人可以帮助我:我正在制作一个Java数据库应用程序,并且希望将我的方法用于选择,插入,更新和删除到分离的类中,以便可以从其他类调用并重用它们。 到目前为止,我设法只分离了更新和删除的方法,以及在不使用准备好的语句时插入的方法。我遇到的问题是如何从数据库中选择并返回数据时返回数据。Java数据库应用程序

这里是我的更新和删除在查询类方法的:

import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import com.Konekcija.Konekcija; 

public class Queries { 
Konekcija konekcija = new Konekcija(); 

public void updateTable(String sqlQuery){ 
    Connection conn = null; 
    Statement st = null; 
    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     conn = konekcija.getConn(); 
     st = conn.createStatement(); 
     st.executeUpdate(sqlQuery); 

    }catch(Exception e){ 
     e.printStackTrace(); 
    }finally{ 
     try { 
      conn.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     try { 
      st.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

public void deleteFromTable(String sqlQuery){ 
    Connection conn = null; 
    Statement st = null; 
    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     conn = konekcija.getConn(); 
     st = conn.createStatement(); 
     st.executeUpdate(sqlQuery); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    }finally{ 
     try { 
      conn.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     try { 
      st.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

} 

附:连接属性在另一个类“Konekcija”

回答

1

你应该创建一个集合,并与查询的结果填充它,它应该是这个样子:

List<Foo> selectFoos(Connection connection) throws SQLException { 
    PreparedStatement ps = connection.prepareStatement("select * from foo"); 
    try { 
     ResultSet resultSet = ps.executeQuery(); 
     try { 
      List<Foo> foos = new ArrayList<Foo>(); 
      while (resultSet.next()) { 
       Foo foo = new Foo(); 
       // use resultSet methods get... to retrieve data from current row of results 
       // and populate foo 
       foos.add(foo); 
      } 
     } finally { 
      resultSet.close(); 
     } 
    } finally { 
     ps.close(); 
    } 
    return foos; 
} 
0

“从表中选择”的返回数据将是ResultSet

  1. 您可以返回结果集呼叫者,而得到的值(或)
  2. 里面的“选择”查询类的方法从ResultSet中检索数据,并设置一些VO对象与此VO加至收集和返回集合(假设您将在ResultSet中获得多行)。例如,如果您要查询用户表,请使用get/set方法创建Java bean类“User”。将检索到的值设置为此bean并将其返回。 //在某些包中使用get/set创建用户类。

    Class.forName("com.mysql.jdbc.Driver"); 
        conn = konekcija.getConn(); 
        st = conn.createStatement(); 
        ResultSet rs=st.execute(sqlQuery); 
        //Instantiate user class 
         while (rs.next()) 
        System.out.println("Name= " + rs.getString("moviename") + " Date= " +    String fName = rs.getString("firstName"); 
    

    User myUser = new User(); myUser.setFirstName(fName); }

    NOTE:此代码是手工输入的。可能有语法错误。请用它作为出发点。

+0

@NathanHughes:这就是我的第二点建议。 – kosa 2012-07-23 21:23:36

+0

我也在想那个,但我不知道这么做。 – 2012-07-23 21:25:35

+0

@ brano88:用示例更新了我的答案。 – kosa 2012-07-23 21:31:47