有人可以帮我解决这个问题:我正在创建一个java数据库应用程序,我想将我的select,insert,update和delete方法放入分离的类中,以便可以从其他类调用它们并重用它们。 到目前为止,我设法只分离更新和删除的方法,并在不使用预准备语句时插入。我遇到的问题是当从数据库中选择并将它们放入表中时如何返回数据。
以下是我在Queries类中的更新和删除方法:
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();
}
}
}
}
P.S。连接属性在另一个类“Konekcija”
中答案 0 :(得分: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;
}
答案 1 :(得分:0)
返回&#34;数据从表格#34;中选择将是ResultSet。
在&#34;选择&#34; Queries类的方法从结果集中检索数据并将其设置为一些VO对象,并将此VO添加到集合中并返回集合(假设您将在ResultSet中获得多行)。例如,如果您要查询User表,请创建Java bean类&#34; User&#34;使用get / set方法。将检索到的值设置为此bean并返回它。 //在某个包中创建带get / set的User类。
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");
用户myUser = new User(); myUser.setFirstName(FNAME); }
NOTE:
此代码是手工输入的。可能存在语法错误。请以此为出发点。
答案 2 :(得分:0)
尝试executeQuery方法。在“结果集”类的java文档中,您将找到一个示例:
http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html