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;
}
/**
@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()