【问题标题】:return results array from class to other class java从类返回结果数组到其他类java
【发布时间】:2014-04-06 15:26:13
【问题描述】:

首先我很抱歉我的英语, 我是 Java 编程新手,我正在尝试从 DB 获取结果值。类到 jdbc derby 上的另一个类这是我的代码:

package myjavaproject;

import java.sql.*;

public class Db {

private static String dbURL = "jdbc:derby://localhost:1527/hotels;create=true";
private static String tableName = "users";
// jdbc Connection
private static Connection conn = null;
private static Statement stmt = null;
public String data = null;

public static void main(String[] args) {
    createConnection();
    shutdown();
}

private static void createConnection() {
    try {
        Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
        //Get a connection
        conn = DriverManager.getConnection(dbURL);
    }
    catch (Exception except) {
        except.printStackTrace();
    }
} 

public static String selectUsers() {
    try {
        stmt = conn.createStatement();
        ResultSet results = stmt.executeQuery("select * from " + tableName);
        Results name = new Results();
        if(results.next()){
            name.setName(results.getString("name"));
            String rs = results.getString("name");
            //return rs;
        }


        results.close();
        stmt.close();
    } 
    catch (SQLException sqlExcept) {
        sqlExcept.printStackTrace();
    }
    return null;
}

private static void shutdown() {
    try {
        if (stmt != null) {
            stmt.close();
        }
        if (conn != null) {
            DriverManager.getConnection(dbURL + ";shutdown=true");
            conn.close();
        }
    } 
    catch (SQLException sqlExcept) {
    }

}

}

【问题讨论】:

  • 您想从 中返回数据?到?
  • 是的,确切地说,我想从一个类获取结果到另一个示例 Db.java,其中连接到数据库和查询的代码和 user.java,我可以在其中获得结果,感谢重播
  • 在这种情况下,您的 User.java 类必须通过后者的对象调用 DB.java 类!
  • 问题是我无法返回数组结果我看过很多关于ArrayList的答案,我没有任何Java经验,但是在PHP示例中我只是返回结果[]。

标签: java database jdbc connection derby


【解决方案1】:

您可能真正想要的是一个服务类,它充当控制器来为您配置所有内容。

类似:

public class Service() {
   private Db databaseConnection;
   private List<User> users;

   public Service() {
      databaseConnection = new Db();
   }

   public List<Users> getUsers() {
        users = new ArrayList<User>();
        rs = databaseConnection.selectUsers(); //you'd need to change this to return the list of users, or to return the result set
        if (rs != null && rs.size() > 0) {
            while(rs.hasNext()) {
                 User aUser = new User();
                 aUser.setName(rs.next().get("Name")); //pseudo-code
                 users.add(aUser);
            }
        }
        return users;
   }
}

【讨论】:

  • 你不必使用列表,你可以使用 User[] users = new User[rs.size()];然后返回一个用户数组而不是 List.
  • @UncleIeoh 谢谢你的回答。但是你知道任何教程可以帮助我我不想浪费你的时间
  • 如何从 Query 中返回可以从其他类收集的结果。
  • 我想不出任何好的教程——抱歉。
  • 好的,我可以得到结果,但是错误说它不是 void 的 String 实例,你知道吗。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 2014-07-25
  • 2018-09-10
  • 2013-11-20
相关资源
最近更新 更多