小编YCF*_*F_L的帖子

如何从mysql中的存储过程中检索多行?

我试图通过存储过程取出一个字段,我使用了以下查询.我的目标是获取多行,但只有当存在一行时才能成功执行结果.否则它会返回错误,如下所述.

MYSQL查询

delimiter ;;
    drop procedure if exists Sample1;;
    CREATE PROCEDURE Sample1(IN lft1 INT,IN rgt1 INT, OUT emp1 VARCHAR(20))
    BEGIN
    SELECT  p.emp into emp1 FROM personnell p WHERE p.lft>lft1  and p.rgt < rgt1 LIMIT 10;
    END;;
    call Sample1(1,10,@emp);;
    select @emp;
Run Code Online (Sandbox Code Playgroud)

错误信息

MySQL said: Documentation
#1172 - Result consisted of more than one row 
Run Code Online (Sandbox Code Playgroud)

注意

-----
Sample1--- procedure name;
emp -----selected field from table personnell
lft -----use to check the condition,it is also one of the field of table personnell
personnell------table …
Run Code Online (Sandbox Code Playgroud)

mysql

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

处理进程是否被外部终止

我正在编写一个程序,在一个进程中创建多个线程。

我需要处理如果进程被某人使用kill -9信号或Ctrl + C从外部终止,我的程序应该在关闭之前执行一些操作,例如它应该将进程的状态更改为数据库中的中止。

我该如何处理?

我需要addShutdownHook()?或者还有其他更好的解决方案来解决我的问题吗?

我已经添加了 :

Runtime.getRuntime().addShutdownHook( new Thread() {

            @Override
            public void run() {
                logger.info( "Running Shutdown Hook" );
                //call some method
                System.out.println( "Running Shutdown Hook" );
            }
        } );
Run Code Online (Sandbox Code Playgroud)

在我的主要方法中,但它似乎不起作用。

java multithreading sigkill kill-process shutdown-hook

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

如何在相机中应用自定义滤镜[Surfaceview预览] ......?

伙计们我正在开发Camera Application,这是我的第一个Android应用程序.

下面我正在添加我的应用程序截图我想要的.

第一视图:

在此输入图像描述

在这里,点击右上角过滤器图标后,我想要一个下面的视图.

第二观点:

在此输入图像描述

我不知道怎么能得到这种类型的观点.我如何将这种类型的视图设计成XML部分.

我读了更多的文章,比如如何在单个屏幕上打开多个表面视图预览,但我没有得到任何欣赏的解决方案.

最后选择任何过滤器预览后,我想要一个上面的图像类型视图.

表示选定的滤镜是预览应用到相机[Surfaceview预览].请提供任何类型的材料链接example.etc

伙计们,请帮助我.任何类型的帮助将不胜感激..):

提前致谢

java camera android surfaceview

6
推荐指数
0
解决办法
1494
查看次数

如何从一行中的几个双引号中获取字符串?

基本上,我需要a b c(单独)

从一条线(每个之间有任意数量的空格)

"a" "b" "c"
Run Code Online (Sandbox Code Playgroud)

是否可以使用string.split执行此操作?

我从什么都试过split(".*?\".*?")("\\s*\"\\s*").

后者工作,但它将数据拆分为数组的每个其他索引(1,3,5),其他索引为空""

编辑:

我希望这适用于任何数量/变化的字符,而不仅仅是a,b和c.(例如:"apple" "pie" "dog boy")

为我的特定问题找到了解决方案(可能效率最低):

Scanner abc = new Scanner(System.in);
for loop
{
      input = abc.nextLine();
      Scanner in= new Scanner(input).useDelimiter("\\s*\"\\s*");
      assign to appropriate index in array using in.next();
      in.next(); to avoid the spaces
}
Run Code Online (Sandbox Code Playgroud)

java regex string

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

使用Collections.frequency()打印某些值

我有一个数组如下:

int[] array = {11, 14, 17, 11, 48, 33, 29, 11, 17, 22, 11, 48, 18};
Run Code Online (Sandbox Code Playgroud)

我想要做的是找到重复的值,并打印它们.

所以我这样做的方法是转换为ArrayList,然后Set使用streamon Set.

ArrayList<Integer> list = new ArrayList<>(array.length);
for (int i = 0; i < array.length; i++) {
    list.add(array[i]);
}

Set<Integer> dup = new HashSet<>(list);
Run Code Online (Sandbox Code Playgroud)

然后我用a stream循环遍历它并使用打印值Collections.frequency.

dup.stream().forEach((key) -> {
            System.out.println(key + ": " + Collections.frequency(list, key));
        });
Run Code Online (Sandbox Code Playgroud)

当然,即使计数为1,它们也会打印出来.

我想加入,if(key > 1)但这是我想要的价值不是关键.

如何在此实例中获取值以仅在哪里打印value > 2.

我可以投入:

int check = …
Run Code Online (Sandbox Code Playgroud)

java collections java-8 java-stream

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

使用Arrays.toString()输出数组的元素

我已经使用下面的代码来创建和填充数组,但是,当涉及到打印数组时,我没有得到我在使用Arrays.toString()函数时所期望的结果.

而不是打印

newArray: [2, 4, 6]
newArray: [8, 10, 12]
etc..
Run Code Online (Sandbox Code Playgroud)

它打印

newArray: [[I@15db9742, [I@6d06d69c, [I@7852e922, [I@4e25154f]
newArray: [[I@15db9742, [I@6d06d69c, [I@7852e922, [I@4e25154f]
etc..
Run Code Online (Sandbox Code Playgroud)

代码:

public static void main(String[] args) {
    int[][] newArray = new int[4][3];
    int number = 2;
    for (int rowCounter = 0; rowCounter < newArray.length; rowCounter++) {
        for (int colCounter = 0; colCounter < newArray[rowCounter].length; colCounter++) {
            newArray[rowCounter][colCounter] = number;
            number += 2;
        }
        System.out.println("newArray: " + Arrays.toString(newArray));
    }
}
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的帮助将非常感激.

java arrays

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

如果作为一个语句编写,则作为Predicate接口的方法组合的Lambda不会编译

这两种lambda创造方式有什么区别?为什么不编译第一个?

Predicate<Integer> predicate = Predicate.isEqual(0).or(Predicate.isEqual(1));
Run Code Online (Sandbox Code Playgroud)

给出: 错误:不兼容的类型:Predicate<Object>无法转换为Predicate<Integer> = Predicate.isEqual(0).or(Predicate.isEqual(1));

Predicate<Integer> pred21 = Predicate.isEqual(0);
Predicate<Integer> pred22 = pred21.or(Predicate.isEqual(1));
Run Code Online (Sandbox Code Playgroud)

这个工作.

java generics lambda currying java-8

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

在列表中查找最大和最小双精度值

我有以下双值列表:

items {9.0, 4.0, 16.0, -6.0, 5.0}
Run Code Online (Sandbox Code Playgroud)

我想找到最大值和最小值,为此我做了:

double max = items.stream().max(Comparator.comparing(String::valueOf)).get();
double min = items.stream().min(Comparator.comparing(String::valueOf)).get();
Run Code Online (Sandbox Code Playgroud)

我得到的结果是max=9.0min=-6.0.我期待最大值16.0.后来,我换16.092.0,它起作用了; 它给了我max=92.0

你知道怎么解决这个问题吗?

java comparator java-8 java-stream

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

安装JDK后,无法运行.jar

在学习过程中,它已在我的计算机上安装了JDK,以便能够运行eXist数据库。此后,执行命令后,出现java -jar fileName.jar以下错误。

图形设备初始化失败:d3d,sw初始化QuantumRenderer时出错:找不到合适的管道java.lang.RuntimeException:java.lang.RuntimeException:初始化QuantumRenderer时出错:在com.sun.javafx.tk.quantum.QuantumRenderer上找不到合适的管道。 com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)上的getInstance(QuantumRenderer.java:280)com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)上的QuantumToolkit.init(QuantumToolkit.java:222) com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)上的.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl .java:658)(位于com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678))。javafx.application.LauncherImpl.lambda $ launchApplication $ 2(LauncherImpl.java:195)at java.base / java.lang.Thread.run(Thread.java:835)原因:java.lang.RuntimeException:初始化QuantumRenderer时出错:no在com.sun.javafx.tk.quantum.QuantumRenderer $ PipelineRunnable.run(QuantumRenderer.java:124)处的com.sun.javafx.tk.quantum.QuantumRenderer $ PipelineRunnable.init(QuantumRenderer.java:94)上找到合适的管道。 .. 1个以上线程“ main”中的异常java.lang.RuntimeException:在com.sun.javafx.application.PlatformImpl.startup的com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)上找不到工具包(PlatformImpl.java:267)com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)com.sun.javafx.application.LauncherImpl。位于com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)的com.sun.javafx.application.LauncherImpl.lambda $ launchApplication $ 2(LauncherImpl.java:195)的startToolkit(LauncherImpl.java:658) java.base / java.lang.Thread.run(Thread.java:835)

Windows 10

java -version
Run Code Online (Sandbox Code Playgroud)

openjdk版本“ 12.0.2” 2019-07-16采用OpenJDK运行时环境

OpenJDK(内部版本12.0.2 + 10)采用OpenJDK 64位服务器VM

OpenJDK(内部版本12.0.2 + 10,混合模式,共享)

java javafx java-12

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

"CTRL + SHIFT + o"用于组织导入不在STS中工作

我必须删除项目中未使用的导入.以前我使用的是eclipse,但现在我正在使用STS.

在STS中," CTRL+ SHIFT+ o"无法删除未使用的导入.

java eclipse spring-tool-suite

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