Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从方法返回所有Resultset值。JAVA_Java_Mysql - Fatal编程技术网

如何从方法返回所有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中或打印它们(不返回).我也强烈建议你调查一下。