小编Ste*_*ers的帖子

DOMXPath :: evaluate和DOMXPath :: query之间有什么区别?

试着决定哪个更适合我的用例......

在比较这些方法的文档后,我模糊的理解是evaluate返回一个类型化的结果,但query没有.此外,该query示例包括循环遍历许多结果,但该evaluate示例假定单个类型的结果.

仍然没有多大的明智!当你使用其中一个时,任何人都可以解释(尽可能接近外行人的条款) - 例如,上面提到的多个/单个结果总是如此吗?

php xpath dom evaluate domxpath

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

是否有Checkstyle/PMD规则"非抽象类不应该命名为AbstractXXX"?

我正在研究的Java项目使用了代码分析工具的组合:PMD,Checkstyle和FindBugs.这些可以解决大量的错误,风格问题等,但是经常会漏网:

public class AbstractBadlyNamedClass { // Not abstract!
    // ...
}
Run Code Online (Sandbox Code Playgroud)

注倒过来检查,即public abstract BadlyNamedClass给出了PMD警告"抽象类应命名为AbstractXXX".

任何人都可以建议是否有办法检查这一点,或者使用上述工具之一(可能是某种自定义规则?)或其他自动化工具来完成这项工作?

java eclipse checkstyle pmd maven

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

用&符号前面的值查询 - 在Oracle中工作但在MySQL中不工作?

在MySQL中,以下声明有效:

mysql>insert into emp1(empno,empname,empsal,empcity) values (100,'vinay',10000,'USA');**

mysql> select * from emp1;
+-------+---------+--------+---------+
| empno | empname | empsal | empcity |
+-------+---------+--------+---------+
|   100 | vinay   |  10000 | USA     |
+-------+---------+--------+---------+
Run Code Online (Sandbox Code Playgroud)

在Oracle中,以下声明有效:

mysql> insert into emp1 values(&empno,'&empname',&empsal,'&empcity');**
Run Code Online (Sandbox Code Playgroud)

但是这在MySQL中不起作用 - 为什么不能将这些值放在前面&呢?

mysql database oracle

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

将属性文件值与数据库中的数据耦合为反模式吗?

我正在开发一个应用程序,其中在属性文件中定义了一些配置值,其值或有效范围在某种程度上取决于存储在数据库中的数据.

这似乎是错误的,原因有几个,但是我很难找到这个名字,或者确实发表任何可能暗示这是不好的做法的文章.有人可以建议吗?

java mysql database database-design properties

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

如何在PostgreSQL列中显示前导/尾随空格?

我在下面的SQL语句执行时看不到前导/尾随空格psql:

select name from my_table;
Run Code Online (Sandbox Code Playgroud)

是否有务实的方式来查看前导/尾随空格?

sql postgresql whitespace psql

7
推荐指数
3
解决办法
4206
查看次数

为什么@ECHO ON/OFF不在批处理文件IF块中工作?

@echo on并且在批处理文件中@echo off的括号内if块中执行时似乎没有任何影响.这是一个简单的演示:

@echo off
echo Test #1
if 1 == 1 (
  @echo on
  echo Test #2
  @echo off
  echo Test #3
)
@echo on
echo Test #4
Run Code Online (Sandbox Code Playgroud)

在命令行上运行上面的输出是:

测试#1
测试#2
测试#3
C:\ mybatchfilelocation> echo测试#4
测试#4

任何人都可以解释这个和/或建议一个解决方法吗?(期望它可能通过大量使用goto和标签来修复,但如果可能的话,我更愿意继续使用括号格式...)

windows cmd batch-file echo

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

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException MySQL + Apache Tomcat 7

我的应用程序(Spring 4 MVC/Hibernate 4/MySQL/Maven)使用基于注释的配置将Spring与Hibernate集成在一起.几个小时后它没有使用数据库我总是看到这个错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 84,510,841 milliseconds ago.  The last packet sent successfully to the server was 84,510,841 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
    com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3938)
    com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2551) …
Run Code Online (Sandbox Code Playgroud)

java mysql spring connection-pooling jdbc

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

如何使用Hibernate Validator验证表中多行的日期范围?

我有一个自定义验证器,用于确保在保存实体之前应用某些业务规则.

例如(假设的),当ProductPrice保存下面定义的时,我验证给定产品的fromDate和endDate(由productId标识)与ProductPriceDB中该产品的现有行没有重叠.

@MyCustomValidator
class ProductPrice {

  Long productId;

  Date fromDate;
  Date toDate; 
}
Run Code Online (Sandbox Code Playgroud)

只要将其ProductPrice保存为单个实体,这样就可以正常工作.一旦该实体作为一对多关系添加到另一个实体中,如下所示,

class Product {
  List<ProductPrice> productPrices;
}
Run Code Online (Sandbox Code Playgroud)

更新父(Product)实体(为了保存它工作正常),以及子实体(List中的一个或多个ProductPrice)中的一些更改,然后它失败,因为保存List中的一个ProductPrice实例不知道接下来要保存的ProductPrice的任何信息.

详细说明:

假设数据库中有两ProducePrice行给定Product,如下所示:

Id    Product Id        From Date        To Date        Price
1     PRD-001           01-01-2016       10-06-106      29.99
2     PRD-001           11-06-2016       10-12-106      32.99
Run Code Online (Sandbox Code Playgroud)

假设我想将rows(ProductPrice)作为Product实体的一部分更新为以下值:

Id    Product Id        From Date        To Date        Price
1     PRD-001           01-01-2016       30-06-106      29.99
2     PRD-001           01-07-2016       31-12-106      32.99
Run Code Online (Sandbox Code Playgroud)

以上数据仍然有效,但hibernate验证器将失败.这是因为节省了第一排的时候,如果我查询数据库来检查fromDatetoDate现有行,然后将与第2行现有的数据库中的重叠.但这不正确,因为第二行也将用有效值更新.也可能是,表中有3行,我在当前事务中只更新其中的2行,第3行未触及.因此,我必须在验证器中查询数据库以检查有效性.

问题太长了,我可能不清楚解释问题.但总而言之,是否有可能查询当前的持久化上下文并获取脏的数据(即将保存)?

java validation hibernate hibernate-validator bean-validation

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

当 MySQL WorkBench bit(1) 将“b”文字放在非位值之前时,如何处理它?

假设我有一个表“day_attribute_type”

id bigint(20) AI PK 
code varchar(255) 
persist_date bigint(20) 
update_date bigint(20) 
active bit(1) 
max int(11) 
min int(11) 
name varchar(255)
Run Code Online (Sandbox Code Playgroud)

如果我在结果网格中添加一个新行并按“应用”按钮,我将得到以下查询:

INSERT INTO `tl2`.`day_attribute_type` (`persist_date`, `update_date`, `active`, `max`, `min`, `name`) 
VALUES ('1', '2', b'1', b'12', b'12', b'text');
Run Code Online (Sandbox Code Playgroud)

看起来 Workbench 不仅将“b”放在位字段之前,而且还放在其他一些字段之前。后期编辑查询并删除有问题的东西真的很烦人。

MySQL WorkBench 8.0.16 x64、Windows 10 MYSQL 社区服务器 8.8.12

我已经更新 MySQL Workbench 一年了,这个讨厌的错误仍然出现......我什至重新安装了我的 Windows。

看起来没有人会修复它。这里提到了。请有人尝试在 Linux/Max 上重现此错误并确认您是否有此错误。

mysql sql rdbms mysql-workbench sql-insert

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

如何在Java中捕获所有已检查的异常(在单个块中)?

编辑:这个问题只涉及Java 1.6(及以下).抱歉没有在原帖中说清楚.

这里的层次结构显示Java Exception分为两种类型:RuntimeException不是RuntimeException:

Java异常层次结构

我可能会错过一些东西,但不会更好地分成类似的东西UncheckedExceptionCheckedException不是吗?例如,以下语句具有相当多的已检查异常:

try {
    transaction.commit();
} catch (SecurityException e) {
} catch (IllegalStateException e) {
} catch (RollbackException e) {
} catch (HeuristicMixedException e) {
} catch (HeuristicRollbackException e) {
} catch (SystemException e) {
}
Run Code Online (Sandbox Code Playgroud)

我只是真的对它是成功还是失败感兴趣所以想要将已检查的异常作为一个组来处理,而不是未经检查的异常,因为捕获意外错误不是好的做法.所以考虑到这一点,也许我可以这样做:

try {
    transaction.commit();
} catch (Exception e) {
    if (e instanceof RuntimeException) {
        // Throw unchecked exception
        throw e;
    }
    // Handle checked exception
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但这看起来非常糟糕.有没有更好的办法?

java exception try-catch runtimeexception checked-exceptions

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