JFinal如何获取到查询出来的结果的字段名?

JFinal如何获取到查询出来的结果的字段名?

1551753660.png

我是用这种查询的,如何获取到字段名?

评论区

苏坡Man

2019-03-05 10:46

这个sql查询的可能是表中的所有字段,也有可能是表中的一个字段。

JFinal

2019-03-05 14:39

Record.getColumns() 可以获取到一个 Map,对这个 Map 的 key 进行迭代即可:
for ( String field : Record.getColumns().keySet()) {
...
}

苏坡Man

2019-03-05 17:09

@JFinal 这个获取的是一个无续的Map,因为我需要做动态表格,想用字段名做表头,这个方法是不是不太实用,要求顺序和数据库一样,比如 id,name,age,sex,这个获取的可能是age,id,sex,name

JFinal

2019-03-05 17:11

@苏坡Man 想获取有序的配置一下:
activeRecordPlugin.setContainerFactory(new OrderedFieldContainerFactory());

jiangkeju

2019-06-11 10:14

@JFinal 查询出来如果没有数据 Record.getColumns() 这个就没法取值了

JFinal

2019-06-11 11:40

@jiangkeju 这个确实是,这种情况可以通过使用 Model 来获取所有字段名,例如:
Table table = TableMapping.getTable(modelClass)
Set《name》names = table.getColumnNameSet();

jiangkeju

2019-06-11 13:42

@JFinal 我只用了activerecord 这一块。同时我这边写的sql 是动态sql 没有具体的实体类

JFinal

2019-06-11 15:43

@jiangkeju 这种情况参考一下 TableBuilder 中获取 table 信息的代码

jiangkeju

2019-06-11 16:41

@JFinal Connection conn = DbKit.getConfig("sqlserver").getConnection(); 次数多了程序会卡死在这。我执行的都是查询操作

JFinal

2019-06-11 16:58

@jiangkeju 必须要卡在这里,自行获取的 Connection 对象,需要在 finally 块中关闭,否则资源泄露

Connection conn = null;

try {
conn = xxx.getConnection();
....
} finally {
if (conn != null) {conn.close();}
}

JFinal

2019-06-11 16:59

@jiangkeju 如果是 JDK 1.7 或以上版本,可以采用 try with resources 语法,更省代码:
try (Connection conn = xxx.getConnection()) {
....
}

habaside

2019-08-16 17:04

@JFinal 通过什么方法可以获取 数据库中某个视图的 字段名集合

JFinal

2019-08-16 17:34

@habaside 如果视图也做了映射,获取方式与前面介绍的方式一样

热门反馈

扫码入社