我正在使用JOOQ和Postgres。在博士后中,我有一个专栏性别:
'gender' AS gender,
(表本身是一个视图,性别列是用Java计算的值的占位符)
在Java中,当I.fetch()视图时,我会对每条记录进行一些计算:
for (Record r : skillRecords) {
idNumber=function(r)
r.set(id, idNumber);
r.set(gender,getGender(idNumber));
}
所有看起来都很好,如果打印值,它们都是正确的。但是,当我在我的技能记录上调用intoResultSet()时,性别列在所有值旁边都有一个星号,例如“*男性”。
然后,我使用结果集作为OpenCSV CSV编写器的输入,当我打开CSV时,性别列显示为null。
有什么建议吗?
更新:
根据Lukas关于星号的输入,我意识到opencsv可能存在问题。
我的代码如下:
File tempFile = new File("/tmp/file.csv");
BufferedWriter out = new BufferedWriter(new FileWriter(tempFile));
CSVWriter writer = new CSVWriter(out);
//Code for getting records sits here
for (Record r : skillRecords) {
idNumber=function(r)
r.set(id, idNumber);
r.set(gender,getGender(idNumber));
}
writer.writeAll(skillRecords.intoResultSet(), true);
return tempFile;
CSV中的所有列都按预期返回,但性别列除外,该列的标题为“性别”,但列值为空。我在上面的代码中有必要的try/catch,但为了简洁起见,我排除了它们。
解决方案:
所以我找到了解决办法。对于博士后来说,如果我有这样的东西:
'gender' AS gender,
类型未知,不是文本。所以解决方案是定义为:
“性别”::文本为性别
在这样做之后,OpenCSV很高兴。
您在结果集中看到的星号。toString()输出(或在结果中。toString())反映记录的内部记录。更改(字段)标志,即每个记录上的信息,表示该记录在从数据库中检索后被修改(您这样做了)。
这只是你可以放心忽略的视觉信息。
问题内容: 我正在使用JDBC来实现非常简单的数据库连接。 我已经创建了连接/语句并执行了查询。我在调试器中检查语句的查询对象,以确认它正在发送正确的查询。然后,我再次检查了数据库中的查询(直接从调试器复制),以确保其返回数据。但是,返回的结果集在.next()上给出false 这里有我遗漏的常见陷阱吗? 还有myDB类(一个简单的包装程序,使我可以将连接/语句代码放入任何项目中) 编辑:根据建议
问题内容: 我有一个看起来像这样的JSON Blob 我有一些代码将其转换回go结构 但是我在运行时看到的只是一个零位结构 我尝试先分配该结构,但那也没有用,我不确定为什么它不产生值,并且不返回错误 问题答案: 您的结构字段不会导出。这是因为它们以小写字母开头。 当我说“未导出”时,是指它们在您的包装之外不可见。您的软件包可以愉快地访问它们,因为它们在本地作用域内。 至于包装-它看不到它们。您需要
问题内容: 我正在尝试创建一种方法,从中可以查询数据库并检索整个表。 目前,如果我使用这些数据只是正常工作 中 的方法。但是,我希望该方法返回结果。 我正在了解当前代码。 我该如何实现? 问题答案: 您永远不要通过公共方法来回避。这很容易导致资源泄漏,因为您不得不保持语句和连接打开。关闭它们将隐式关闭结果集。但是,将它们保持打开状态将导致它们悬而未决,并且当它们打开过多时,将导致数据库用尽资源。
我试图从一个网站刮数据练习网络刮。但是返回空集。我如何解决这个问题? 输出:
方法返回空结果。我正在尝试使用Spring-boot、h2数据库和JPA来实现rest服务。 下面是我的 我的文件包括: 实体: 接口:
我正在构建我的第一个Spring Boot应用程序。但是我不能正确地得到我的requestMapping控制器的回答。 这是我的主要课程: 这是我的RestController: 如果我看一下日志,我可以看到“/hi”映射: 但是当我访问:http:localhost:8080/hi时,我看到了一个空白页面,我期望看到“Hello World”文本。 为什么我得到一个空白页面? ---编辑----