转储H2插入语句 - java

您好,我如何仅转储内存DB中H2实例的数据。

我目前有什么

    PreparedStatement preparedStatement = connection
            .prepareStatement("SCRIPT SIMPLE NOSETTINGS");
    ResultSet resultSet = preparedStatement.executeQuery();
    response.setContentType("text/plain");
    ServletOutputStream out = response.getOutputStream();
    while (resultSet.next()) {
        String columnValue = resultSet.getString(1);
        out.print(columnValue);
        out.println();

这将转储整个db结构,而不仅仅是转储插入数据。基本上,我想做的是备份在开发模式下插入的数据,以便下次启动数据库时可以重新编写数据脚本。

表结构不是问题,因为它是由JPA完成的。

参考方案

要过滤掉插入内容,可以使用:

if (columnValue.startsWith("INSERT")) {
    out.println(columnValue);
}

Java:在PreparedStatement(JDBC)中将null传递为long - java

我有一个变量是Long val = null; 而且我正在寻找一种将其传递给PreparedStatement语句对象的方法,以便将数据库中的字段值设置为null。statement.setLong(1,val); 它对Long无效,而对Long则无效。任何输入的想法或建议。谢谢 !!! 参考方案 您应该使用setNull method。statement.…

JDBC ResultSet总行 - java

我正在我的应用程序中实现分页。为此,我运行查询并获取ResultSet。现在,我想获得此ResultSet中用于分页计算的记录总数。我怎么能得到这个?我不想执行额外的SQL,而这会给我总行数。 参考方案 另一个选择是将计数聚合添加为查询中的子查询列。如果您的数据库有点聪明,它将只执行一次。您应该能够使用自己喜欢的数据库中的查询分析器轻松地检查这一点。SELE…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

Java:我可以在Hashmaps中使用数组吗? - java

我可以在Hashmaps中使用数组吗?如果是这样,则声明这种哈希图的确切语法是什么?谢谢 参考方案 数组也是对象。甚至像int[]这样的原始数组。Map<String,String[]> map = new HashMap<String,String[]>();