2

我不知道如何使用 hashmap 和 while 循环从我的数据库中检索数据。请帮助我。
我的代码是

    package com.glomindz.mercuri.dao;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.HashMap;

    import com.glomindz.mercuri.util.MySingleTon;

          public class UserServicesDAO {

private Connection connection;

public UserServicesDAO() {
    //connection = new MySingleTon().getConnection();
    connection = MySingleTon.getInstance().getConnection();

}

public void get_all_data() {
    HashMap<Integer, String> result = new HashMap<Integer, String>();
    String query = "SELECT * FROM spl_user_master";
    try {
        PreparedStatement stmt = connection.prepareStatement(query);
        boolean execute = stmt.execute();
        System.out.println(execute);
        ResultSet resultSet = stmt.getResultSet();
        System.out.println(resultSet.getMetaData());

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    new UserServicesDAO().get_all_data();
}
 }

代码有什么问题?

4

2 回答 2

6

您可以像这样在循环中从记录中获取值

ResultSet resultSet = stmt.getResultSet();
while (resultSet.next()) {
    String someStringValue = resultSet.getString("some_column_name");
    int someIntegerValue = resultSet.getInt("some_other_column_name");
    //...
}
于 2013-07-08T12:24:09.217 回答
1

您正在创建地图,但没有返回它,也没有将 SQL 结果放在地图结果中:

public Map<Integer, String> get_all_data() {
    HashMap<Integer, String> result = new HashMap<Integer, String>();
    String query = "SELECT * FROM spl_user_master";
    try {
        PreparedStatement stmt = connection.prepareStatement(query);
        boolean execute = stmt.execute();
        System.out.println(execute);
        ResultSet resultSet = stmt.getResultSet();
        System.out.println(resultSet.getMetaData());
        while (resultSet.next()) {
              result.put(resultSet.getInt(...), resultSet.getString(...));
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return result;
}

在上面的代码...中应该是列名

于 2013-07-08T12:33:32.523 回答