如何从方法返回所有Resultset值。JAVA
我有一个数据库,其中包含:如何从方法返回所有Resultset值。JAVA,java,mysql,Java,Mysql,我有一个数据库,其中包含: title of the show: Avenger Deadpool etc. 我有一个方法可以得到所有节目的标题 public String shows2(){ try{ Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ticket",
title of the show:
Avenger
Deadpool
etc.
我有一个方法可以得到所有节目的标题
public String shows2(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ticket","root",null);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from events");
while(rs.next()){
String title = rs.getString("title");
return "Shows: " +title;
}
}catch(Exception e){
e.printStackTrace();
}
return "something";
}
但是当我使用这个方法时,它只返回一行/show
"Shows: Avenger"
您必须返回一个
列表
,而不是单个字符串
public List<String> shows2(){
List<String> result = new ArrayList<>();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ticket","root",null);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from events");
while(rs.next()){
String title = rs.getString("title");
result.add(title);
}
}catch(Exception e){
e.printStackTrace();
}
return result;
}
公共列表shows2(){
列表结果=新建ArrayList();
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/ticket“,”根“,”空);
语句stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(“从事件中选择*);
while(rs.next()){
字符串标题=rs.getString(“标题”);
结果.添加(标题);
}
}捕获(例外e){
e、 printStackTrace();
}
返回结果;
}
将公共字符串shows2(){
更改为公共列表shows2(){
,这样您就可以返回完整的结果列表
不要在
while
循环中返回,而是添加到您的列表中,例如yourList.add(title);
,然后在方法末尾返回。希望这对您有所帮助
public ArrayList<String> shows2() {
ArrayList<String> movieList = new ArrayList<String>();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ticket", "root", null);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from events");
while (rs.next()) {
String title = rs.getString("title");
movieList.add("Shows: " + title);
}
} catch (Exception e) {
e.printStackTrace();
}
return movieList;
}
public ArrayList shows2(){
ArrayList movieList=新的ArrayList();
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
连接连接=DriverManager.getConnection(
“jdbc:mysql://localhost:3306/ticket“,”根“,”空);
语句stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(“从事件中选择*);
while(rs.next()){
字符串标题=rs.getString(“标题”);
movieList.add(“显示:”+标题);
}
}捕获(例外e){
e、 printStackTrace();
}
回归电影人;
}
您只能从方法返回一次。将您的结果集
保存为某种类型的列表
。while循环中的语句只执行一次,因为您立即从方法返回。根据需要,您应该将字符串保存在a中或打印它们(不返回).我也强烈建议你调查一下。