小编Pet*_*ang的帖子

有没有办法知道Java程序是从命令行还是从jar文件启动的?

我想要在控制台中显示一条消息或者弹出一个消息,所以如果没有指定参数,我想知道我应该显示哪个

就像是:

if( !file.exists() ) {
    if( fromCommandLine()){
        System.out.println("File doesn't exists");
    }else if ( fromDoubleClickOnJar() ) {
        JOptionPane.showMessage(null, "File doesn't exists");
    }
 }
Run Code Online (Sandbox Code Playgroud)

java validation command-line double-click

33
推荐指数
1
解决办法
3756
查看次数

Java:JPQL日期函数,用于将时间段添加到另一个日期

SELECT x FROM SomeClass
WHERE x.dateAtt BETWEEN CURRENT_DATE AND (CURRENT_DATE + 1 MONTH)
Run Code Online (Sandbox Code Playgroud)

在上面的JPQL语句中,SomeClass有一个memebr dateAttr,它是一个java.util.Date并且有一个@Temporal(javax.persistence.TemporalType.DATE)注释.

我需要一种方法来做这(CURRENT_DATE + 1 MONTH)一点 - 它在当前状态下显然是错误的 - 但是找不到带有JPQL日期函数的doc.

任何人都可以指向我的文档的方向,文档JPQL日期函数(以及如何执行此特定查询)?

java documentation date jpql

26
推荐指数
3
解决办法
4万
查看次数

如何将数组中的数字序列转换为数字范围

在javascript中如何将数组中的数字序列转换为数字范围?

例如.[2,3,4,5,10,18,19,20][2-5,10,18-20]

javascript range sequence

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

SUBSTR在CLOB上的性能

我有一个PL/SQL过程,它SUBSTRVARCHAR2参数上做了很多.我想删除长度限制,所以我尝试将其更改为CLOB.

工作正常,但性能受损,所以我做了一些测试(基于2005 年的这些测试).


更新:我可以在具有不同Oracle版本和不同硬件的几个不同实例上重现这一点,dbms_lob.substr总是明显慢于substr(CLOB),并且慢很多SUBSTR(VARCHAR2).

鲍勃的结果和上面链接中的测试讲述了一个不同的故事.

任何人都可以解释这个,或者至少复制鲍勃或我的结果?谢谢!


检测结果:

+000000000 00:00:00 004000000(VARCHAR2)
+000000000 00:00:00.298000000(CLOB SUBSTR)
+000000000 00:00:00.356000000(DBMS_LOB.SUBSTR)

测试代码:

DECLARE
  l_text   VARCHAR2(30) := 'This is a test record';
  l_clob   CLOB := l_text;
  l_substr VARCHAR2(30);
  t TIMESTAMP;
BEGIN
  t := SYSTIMESTAMP;
  FOR i IN 1..100000 LOOP
    l_substr := SUBSTR(l_text,1,14);
  END LOOP;
  dbms_output.put_line( SYSTIMESTAMP - t || ' (VARCHAR2)');

  t := SYSTIMESTAMP;
  FOR i IN …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql clob oracle11g

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

定义VARCHAR2列的长度更大的影响

当值不超过10字节时VARCHAR2(1000),VARCHAR2(10)使用Oracle 而不是Oracle 定义列有什么影响?

该列是否仅占用存储值所需的空间,还是会对表空间/索引的大小/性能产生负面影响?

sql oracle varchar2

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

PL/SQL包无效

我有一个使用包的脚本(PKG_MY_PACKAGE).我将更改该包中的查询中的一些字段,然后重新编译它(我不更改或编译任何其他包).我运行脚本,我得到一个看起来像的错误

    ORA-04068: existing state of packages has been discarded
    ORA-04061: existing state of package body "USER3.PKG_MY_PACKAGE" has been invalidated
    ORA-04065: not executed, altered or dropped package body "USER3.PKG_MY_PACKAGE"
    ORA-06508: PL/SQL: could not find program unit being called: "USER3.PKG_MY_PACKAGE"
    ORA-06512: at line 34

我再次运行脚本(不更改系统中的任何其他内容)并且脚本成功执行.

我认为,在我编写之前,我执行了修复任何无效引用的脚本.这是100%可重复的,我使用这个脚本越多,它就越烦人.什么可能导致这种情况,以及会解决什么问题?

(oracle 10g,使用PL/SQL Developer 7)

oracle plsql

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

没有标题的JTable

谁能告诉我如何创建没有表头的表?

我正在制作数独谜题,我想在Java中创建一个没有表头的表.可能吗?

java swing jtable

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

Ant目标的"if"和"depends"的评估顺序是什么?

也就是说,当testSetupDone求值为false时会调用以下目标,在依赖链中执行目标吗?

<target name="-runTestsIfTestSetupDone" if="testSetupDone" depends="-runTests" />
Run Code Online (Sandbox Code Playgroud)

ant

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

如何检测循环的结束(对于每个)?

使用for(int i = 0; i < str.length; i++)我可以轻松检测循环是否在最后.

但我怎么知道我是否正在使用forfor each.

for(String str : arrayString){

    if(End of for) //Do something if the end of the loop

}
Run Code Online (Sandbox Code Playgroud)

我使用的原因for(:),而不是for(;;)是,str实际上是一个大的对象,我需要使用属性,用于循环内的另一个循环.而且我不喜欢使用object.get(index).getProperty它只是为了方便我编写代码.这就是为什么我想知道for(:)循环是否在最后一个索引.

UPDATE

我的临时解决方案是分配一个int包含迭代次数的变量.然后检查变量是否等于的长度str.length.

java for-loop

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

获取两个Oracle时间戳之间的秒数

Tom Kyte 建议使用它EXTRACT来区别对待:

extract( day from (x-y) )*24*60*60+
extract( hour from (x-y) )*60*60+
...
Run Code Online (Sandbox Code Playgroud)

这似乎更难以阅读并且比这更慢,例如:

( CAST( x AS DATE ) - CAST( y AS DATE ) ) * 86400
Run Code Online (Sandbox Code Playgroud)

那么,在几秒钟内获得两个时间戳之间差异的方法是什么?谢谢!

oracle timestamp

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