小编Jin*_*Kim的帖子

Java:如何确定正则表达式模式匹配失败的原因?

我正在使用正则表达式来匹配模式是否匹配,但我也想知道它何时失败.

例如,假设我有一个"N {1,3} Y"的模式.我将它与字符串"NNNNY"匹配.我想知道它失败了因为Ns太多了.或者,如果我将它与字符串"XNNY"匹配,我想知道它失败了,因为字符串中包含无效字符"X".

通过查看Java正则表达式包API(java.util.regex),匹配成功时,似乎只能从Matcher类中获取其他信息.

有没有办法解决这个问题?或者是正则表达式甚至在这种情况下的选项?

java regex

10
推荐指数
1
解决办法
3729
查看次数

Eclipse C++包含错误:没有这样的文件或目录

我已经将一个C++项目加载到Eclipse(Europa)中,我熟悉了CDT界面.

以下行有一条特别恼人的错误消息:

#include "somedir/somefile.h"
Run Code Online (Sandbox Code Playgroud)

somedir/somefile.h:没有这样的文件或目录

include文件存在于"/opt/local/project/include/somedir/somefile.h"中.

项目>属性> C/C++常规>路径和符号>包含下,我已经添加了包含目录"/ opt/local/project/include".

但是,这似乎并没有解决问题.

有谁知道如何处理这个错误?谢谢.

编辑:解决了问题.事实证明这是一个简单的问题.我不得不"刷新"工作区中的所有项目.

c c++ eclipse eclipse-cdt include

8
推荐指数
1
解决办法
4万
查看次数

Java:可以在Java控制台应用程序中禁用Ctrl-C吗?

正如主题所述,有没有办法禁用CTRL-C(和其他信号),以便它们不会终止应用程序?

java

7
推荐指数
1
解决办法
4162
查看次数

如何对 SQL Server 进行分块更新?

我想通过将年初以来所有值的 FLAG 列设置为 1 来更新 SQL Server 中的表:

TABLE
DATE        ID     FLAG   (more columns...)
2016/01/01  1      0      ...
2016/01/01  2      0      ...
2016/01/02  3      0      ...
2016/01/02  4      0      ...
(etc)
Run Code Online (Sandbox Code Playgroud)

问题是该表包含数亿条记录,并且建议我一次将更新分块 100,000 行,以避免阻塞其他进程。

我需要记住我更新了哪些行,因为后台进程在完成处理后会立即将 FLAG 翻转回 0。

有人对我如何做到这一点有建议吗?每天的数据价值超过一百万条记录,因此我不能简单地使用 DATE 作为计数器进行循环。我正在考虑使用 ID

sql-server

7
推荐指数
2
解决办法
6949
查看次数

如何有效地删除Postgresql 8.1表中的行?

我正在研究PostgreSQL 8.1 SQL脚本,它需要从表中删除大量行.

假设我需要删除的表是Employees(~260K行).它的主键名为id.

我需要从此表中删除的行存储在一个名为EmployeesToDelete(~10K记录)的单独临时表中,其中包含一个名为employee_id的Employees.id的外键引用.

有没有一种有效的方法来做到这一点?

起初,我想到了以下几点:

DELETE
FROM    Employees
WHERE   id IN
        (
        SELECT  employee_id
        FROM    EmployeesToDelete
        )
Run Code Online (Sandbox Code Playgroud)

但我听说使用"IN"子句和子查询可能效率低下,尤其是对于较大的表.

我查看了PostgreSQL 8.1文档,并提到了DELETE FROM ... USING但它没有示例,所以我不知道如何使用它.

我想知道以下是否有效并且效率更高?

DELETE
FROM    Employees
USING   Employees e
INNER JOIN
        EmployeesToDelete ed
ON      e.id = ed.employee_id
Run Code Online (Sandbox Code Playgroud)

非常感谢您的意见.

编辑:我运行了EXPLAIN ANALYZE,奇怪的是第一个DELETE跑得很快(几秒钟内),而第二个DELETE花了这么长时间(超过20分钟)我最终取消了它.

向临时表添加索引有助于提高性能.

这是对任何感兴趣的人的第一个DELETE的查询计划:

 Hash Join  (cost=184.64..7854.69 rows=256482 width=6) (actual time=54.089..660.788 rows=27295 loops=1)
   Hash Cond: ("outer".id = "inner".employee_id)
   ->  Seq Scan on Employees  (cost=0.00..3822.82 rows=256482 width=10) (actual time=15.218..351.978 rows=256482 loops=1)
   ->  Hash  (cost=184.14..184.14 rows=200 width=4) (actual time=38.807..38.807 rows=10731 loops=1) …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql

6
推荐指数
2
解决办法
2万
查看次数

是否可以在 PostgreSQL 中创建一个带有变量名的表?

使用 PL/pgSQL 或(其他一些机制),是否可以创建一个带有变量名的表?

我想创建多个名为 table_1、table_2、table_3 等的表……如果我可以使用循环来创建它们,而不是显式地创建每个表,那就更简单了。

我怀疑这个答案是否定的,但我想确认一下。

sql postgresql plpgsql

6
推荐指数
1
解决办法
5219
查看次数

Java的开源ABNF Parser实现?

我需要Java中的Augmented Backus-Naur Form Parser(RFC 5234)来验证某些语言.

为了不重新发明轮子,我宁愿使用现有的ABNF Parser开源实现(如果已经存在).

我需要开源,因为它允许我根据需要维护代码.

有谁知道存在的任何东西?

java parsing

6
推荐指数
1
解决办法
3971
查看次数

SQL:过滤行

我正在尝试编写一个SQL查询,该查询返回包含数据的表中的行:

表结构如下:

CREATE TABLE person(
    id INT PRIMARY KEY,
    name TEXT,
    operation TEXT);
Run Code Online (Sandbox Code Playgroud)

我想返回尚未"取消"的所有唯一名称行.如果操作是"插入"或"删除"并且存在具有相同操作的相同名称的另一行,则认为行被"取消".

例如,如果我有以下行

id   name   operation
1    bob    insert
2    bob    delete
3    bob    insert
Run Code Online (Sandbox Code Playgroud)

前两行相互"取消",因为它们使用相反的操作共享相同的名称.所以查询应该返回第3行.

这是另一个例子:

id   name   operation
1    bob    insert
2    bob    delete
3    bob    insert
4    bob    delete
Run Code Online (Sandbox Code Playgroud)

在这种情况下,行1和2抵消,行3和4抵消.因此查询不应返回任何行.

最后的例子:

id   name   operation
1    bob    insert
2    bob    insert
Run Code Online (Sandbox Code Playgroud)

在这种情况下,行1和2不会取消,因为操作不相反.所以查询应该返回两行.

我有以下查询处理前两个方案,但它不处理最终方案.

有没有人对可以处理所有3种情况的查询有任何建议?

SELECT MAX(id),name 
FROM person z 
WHERE operation IN ('insert','delete') 
GROUP BY name 
HAVING count(1) % 2 = 1;
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgresql-9.1

6
推荐指数
1
解决办法
1151
查看次数

如何使用Spring的Java Config保护具有多个领域的Web应用程序?

我有2种类型的资源的Web应用程序。

  • 网页
  • 网页服务

我想使用一个身份验证提供程序(即CAS)保护网页,并使用另一个身份验证提供程序(即BASIC身份验证)保护Web服务。

我找到了一个可以在这里工作的解决方案,但是它使用XML,并且如果可能的话,我宁愿不使用XML配置。

是否有Java Config解决方案?

java spring spring-security spring-java-config

5
推荐指数
1
解决办法
2488
查看次数

覆盖标准Spring MVC异常的处理行为

Spring Boot似乎有一个默认行为来处理某些异常.我有一个休息控制器.如果我没有HttpRequestMethodNotSupportedException在带@ControllerAdvice注释的rest控制器中处理,则应用程序返回包含错误消息的默认JSON响应.

我不想替换这个JSON响应,但我确实希望在发生时记录其他信息(例如记录某个请求者的IP地址).

有没有办法用带@ExceptionHandler注释的方法或其他机制来做到这一点?

java spring exception-handling spring-mvc spring-boot

5
推荐指数
1
解决办法
2372
查看次数