Java 如何从列表中获取特定项目<;地图<;字符串,对象>&燃气轮机;

Java 如何从列表中获取特定项目<;地图<;字符串,对象>&燃气轮机;,java,Java,当我运行此代码时: List<Map<String, Object>> beforeDelete = query("select count(*) from wp_announcement where announcement_id =" + announcementId, null); System.out.println("This is the count : " + beforeDelete.get(0)); 我怎样才能得到1,而不是{C1=1}?你得到的是{

当我运行此代码时:

List<Map<String, Object>> beforeDelete = query("select count(*) from wp_announcement where announcement_id =" + announcementId, null);

System.out.println("This is the count : " + beforeDelete.get(0));

我怎样才能得到
1
,而不是
{C1=1}

你得到的是
{C1=1}
,因为
在删除之前。get(0)
返回一个
映射

我怎样才能得到1,而不是{C1=1}

就像从映射中检索元素一样,即使用其键

beforeDelete.get(0).get("C1");

如果您知道返回的映射的结构将完全如您所示,那么可以在
C1
键中获得如下值:

int val = ((Integer)beforeDelete.get(0).get("C1")).intValue();
添加安全检查以确保结果正好有一个元素,并且初始元素有一个映射到
java.lang.Integer
的键
“C1”

只要查询是固定的,这应该是安全的。如果查询来自您控制范围之外的某个源,则需要找到其他方法来访问结果


注意:假设查询进入一些RDBMS,您应该参数化查询以避免注入攻击。

在delete.get(0.get(“C1”)
之前
如何?您确定要创建映射列表吗?只有一张地图可以完成这项工作。@Pshemo-你想把它记下来作为一个答案,这样我就可以相信你了吗?同时,我会投票给你。谢谢。@navlag-Nah,我不确定只有这段代码的答案对任何人都有帮助(除了你),不幸的是我没有时间发布正确的答案。但请随意投票并接受任何为我的示例添加解释的答案。扩展@Pshemo的答案:您的选择显然返回为一个
列表
,其中每个
映射
s每一列(在本例中仅为
C1
)到表示其在该行中的值的对象。由于您的select是一个单例,
get(0)
可以很好地获取唯一的行,但是您还需要获取列值,这就是
get(“C1”)
所做的。也许您可以解释一下您的
查询是否是您自己的方法,以及它的作用-也许是
java.lang.sql.Statement.executeQuery
int val = ((Integer)beforeDelete.get(0).get("C1")).intValue();