JDBC如何遍历Mysql的set类型列

JDBC如何遍历Mysql的set类型列

List<对象名> list = new ArrayList<对象名>();
while(rs.next()){
对象名 对象 = new 对象名();
对象.set..(rs.getString("name"));
Set<另一个对象> s = new HashSet();
 ResultSet re=db.execQuery("SELECT * FROM 另一个对象表 where 关联的外键Id=?",new Object[]{rs.getInt("pid")});
另一个对象 stu=null;
while(rs.next){
与上面一样
s.add(stu);
}
对象.set另一个对象集合(s)
list.add(对象);
}

就是相当于得到外键的ID,然后在做一次查询

[code="java"]
public List getAllTableName(Connection conn) {
List tables = new ArrayList();
String[] types = { "TABLE"};// "VIEW"

try {
    DatabaseMetaData metaData = conn.getMetaData();

    ResultSet rs = metaData.getTables(null, null, null, types);
    while (rs.next()) {
        TableInfo table = new TableInfo();
        String tableName = rs.getString("TABLE_NAME");
        table.setName(tableName);
        table.setRemark(rs.getString("REMARKS"));
        table.setBeanName(toBeanName(tableName));

        setTableColumns(metaData, table);
        tables.add(table);
    }

} catch (SQLException e) {
    e.printStackTrace();
}

return tables;

}

/**

  • 根据表名称获取表字段
  • (仅处理columnName/columnRemark/columnType)
  • @param metaData
  • @param table
    */
    public void setTableColumns(DatabaseMetaData metaData, TableInfo table){
    if(StringUtils.isBlank(table.getBeanName())){
    return ;
    }

    try {
    List columns = new ArrayList();

    ResultSet rs = metaData.getColumns(null, null, table.getName(), null);
    while (rs.next()) {
        //在这里面处理set的字段列
        String type = rs.getString("SET");
        .....
    }
    

    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    [/code]

前面的答案不太对吧
lz 问的是遍历 MySQL 类型为 set 的列,而不是 ResultSet

Mysql中set类型可以直接对应Java中的String类型

ResultSet rs = ....
String setCol = rs.getString('setColName');

JDBC如何遍历Mysql的set类型列 如果单纯要是要做set类型的遍历 set里面提供了一个遍历的方法iterator()