【问题标题】:Class for manipulating with table in DB- Java MySQLDB-Java MySQL中的表操作类
【发布时间】:2014-03-26 00:42:03
【问题描述】:

我应该单独上课,阅读图书馆,更新等。 课本应该有:

  1. 参数构造函数加上 toString() 的覆盖
  2. getAll static 方法读取 DB 的所有数据
  3. getById 方法是在我们提供 ID 时读取数据,也是静态的。

但我接下来做了:

Main.java

    try {      
        ArrayList<String[]> allBooks = Books.getAll("SELECT * FROM books");
        for (String[] izd : allBooks) {
            System.out.println("Books id: " + izd[0] + " Date of publishing: " + izd[1] + " Id of books: " + izd[2]+...);
        }
    } catch (Exception e) {
        System.out.println(e);
    }

Books.java

    static ArrayList<String[]> getAll(String stt) throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException
    {
    connect();
    Statement stmt = conn.createStatement();
    stmt.executeQuery(stt);

    ResultSet rs = stmt.getResultSet();
    int columnsNum = rs.getMetaData().getColumnCount();
    ArrayList<String[]> result = new ArrayList<String[]>();

    while(rs.next())
    {
        String[] rowArr = new String[columnsNum];
            for(int i=0;i<columnsNum;i++)
                    rowArr[i]=rs.getString(i+1).toString();
            result.add(rowArr);
    }
    close();
    return result;
}

我真的不明白如何......任何帮助都会像:D

【问题讨论】:

  • 自己做作业,如果出现问题,请提出具体问题。
  • @Maya 你想要什么?你有什么问题?

标签: java mysql data-manipulation fetching-strategy


【解决方案1】:

你在这里并没有提供太多关于你的目标的信息,所以我只能猜测。我希望是这样的:

public class Book {
  private String title;
  //...

  //constructor
  public Book(String theTitle) {
    this.title = theTitle;
  }

  public static ArrayList<Book> getAll(String stt) { /* ... */ }

  public static Book getById(int id) { /* ... */ }
}

在你的getAll 函数中你可能想要这样的东西:

while(rs.next())
{
    Book aBook = new Book(rs.getString("title"));
    result.add(aBook);
}

【讨论】:

  • 即使简单,也不代表愚蠢。我是第一位教授,所以我很清楚这一点。我刚开始学习Java。显然,我在学习中遗漏了一些东西。我不明白,在这种情况下我需要构造函数。我知道在类中创建构造函数并从 Main.java 打印一些数据的基本示例。我从上面看到了这个函数 getAll,所以我不明白如何使用属性和构造函数来获取。
猜你喜欢
  • 2016-03-10
  • 1970-01-01
  • 2017-05-22
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多