一直搞不清楚executeQuery执行方法 返回结果是resultSet 和 Arraylist
一直搞不清楚executeQuery执行方法返回结果是resultSet和Arraylist我只知道返回Arraylist可以把数据库资源及时关闭节省资源但是具体使用的时...
一直搞不清楚executeQuery执行方法 返回结果是resultSet 和 Arraylist 我只知道返回Arraylist 可以把数据库资源及时关闭 节省资源 但是具体使用的时候真是让我很头大 尤其是使用Arraylist 这个返回结果进行分页的时候 (mysql) 求大神解答啊
String sql="select * from book where 1=? and id limit "+(pageSize*(pageNow-1))+","+pageSize;
String param[]={"1"}; ArrayList al1=sq.executeQuery(sql, param); ArrayList<Book> newAl=new ArrayList<Book>();
for(int i=0;i<al1.size();i++){ book.setName(obj[1].toString()); 此处为进行二次封装代码
newAl.add(book);
} return newAl;}
}这是代码 展开
String sql="select * from book where 1=? and id limit "+(pageSize*(pageNow-1))+","+pageSize;
String param[]={"1"}; ArrayList al1=sq.executeQuery(sql, param); ArrayList<Book> newAl=new ArrayList<Book>();
for(int i=0;i<al1.size();i++){ book.setName(obj[1].toString()); 此处为进行二次封装代码
newAl.add(book);
} return newAl;}
}这是代码 展开
1个回答
展开全部
一、boolean execute(String sql)
允许执行查询语句、更新语句、DDL语句。
返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。
例子:
public static void main(String[] args) {
Connection conn = null;
Statement stm = null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Test;user=sa;password=sasa");
stm = conn.createStatement();
boolean ret = stm.execute("select * from stuinfo");
if(ret){
rs = stm.getResultSet();
while(rs.next()){
System.out.println("姓名:"+rs.getString("stuName")+"\t年龄:"+rs.getString("stuScore"));
}
}
ret = stm.execute("update stuinfo set stuScore=62 where stuname='张三'");
int count = stm.getUpdateCount();
if(!ret){
System.out.println(count+"条数据修改成功!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
二、int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
返回值是更新的记录数量
三、ResultSet executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
execute是executeUpdate与executeQuery的综合
允许执行查询语句、更新语句、DDL语句。
返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。
例子:
public static void main(String[] args) {
Connection conn = null;
Statement stm = null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Test;user=sa;password=sasa");
stm = conn.createStatement();
boolean ret = stm.execute("select * from stuinfo");
if(ret){
rs = stm.getResultSet();
while(rs.next()){
System.out.println("姓名:"+rs.getString("stuName")+"\t年龄:"+rs.getString("stuScore"));
}
}
ret = stm.execute("update stuinfo set stuScore=62 where stuname='张三'");
int count = stm.getUpdateCount();
if(!ret){
System.out.println(count+"条数据修改成功!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
二、int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
返回值是更新的记录数量
三、ResultSet executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
execute是executeUpdate与executeQuery的综合
追问
谢谢你,这个我晓得 我不晓得public ResultSet executeQuery(String sql,String [] paras){}和public ArrayList executeQuery(String sql, String paras[]) {}使用的时候具体区别 只是知道后者更节省资源。分页的时候我用的后者 但是数据库中的语句在jsp页面上不显示
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询