小编Viv*_*vek的帖子

如何在Java程序中调用DLL中的方法

我试图使用JNA调用DLL中的方法.到目前为止已经加载了DLL

Runtime.getRuntime().load("myworkspace/test.dll");
Run Code Online (Sandbox Code Playgroud)

这个dll包含了我需要访问的方法.如何在Java文件中执行DLL中的方法.我是否创建了一个对象或DLL的某些东西,然后在点运算符后获取方法名称.

java dll java-native-interface jna

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

如何将整数数组传递给MyBatis中的IN子句

我的Mybatis中有一个包含IN子句的查询,它基本上是一组Id(整数)

我现在停留在如何将一个Integer数组传递给这个IN子句,以便它提取正确的记录.通过将包含ID的String传递给IN子句,但这没有按预期工作.

代码示例如下

使用注释的Mybatis方法

@Select(SEL_QUERY)
    @Results(value = {@Result(property="id",column="ID")})
    List<Integer> getIds(@Param("usrIds") Integer[] usrIds);
Run Code Online (Sandbox Code Playgroud)

询问

select distinct ID from table a where a.id in ( #{usrIds} )
Run Code Online (Sandbox Code Playgroud)

方法调用

Integer[] arr = new Integer[2];
arr[0] = 1;
arr[1] = 2;

mapper.getIds(arr)
Run Code Online (Sandbox Code Playgroud)

这不起作用,当我调用mapper方法时,Mybatis会抛出一个错误

请给我任何建议

java java-ee mybatis

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

如何在Ajax中发送js数组

我创建了一个像这样的JS数组var detailsArr = new Array();并将一些数据推送到这个数组中.

现在我通过Ajax将这个数组推送到我的Spring Controller中

$.ajax({
            type: "POST",
            url: "submit",
            data: ({detailsArr : detailsArr }),
            success: function(html){
              alert( "Submitted");
                }
          });
Run Code Online (Sandbox Code Playgroud)

在Spring Controller端,我通过@RequestBody注释接收这个数组.Spring Controller方法签名如下所示

public String submit(@RequestBody String body) 
Run Code Online (Sandbox Code Playgroud)

但是在Spring Controller端收到的数组基本上是这种格式的String

detailsArr[]=add&detailsArr[]=test1&detailsArr[]=test2&detailsArr[]=test3
Run Code Online (Sandbox Code Playgroud)

我必须手动拆分此String以获取值,这是一个繁琐的过程.有没有什么方法可以让我得到数组,所以我只需要迭代它来获取值.

javascript jquery json spring-mvc

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

KSH中的变量范围

我编写了一个示例KornShell函数来拆分String,将它放在一个数组中,然后打印出值.代码如下

#!/usr/bin/ksh

splitString() {

    string="abc@hotmail.com;xyz@gmail.com;uvw@yahoo.com"

    oIFS="$IFS"; 
    IFS=';' 
    set -A str $string
    IFS="$oIFS"
}

splitString
echo "strings count = ${#str[@]}"
echo "first : ${str[0]}";
echo "second: ${str[1]}";
echo "third : ${str[2]}";
Run Code Online (Sandbox Code Playgroud)

现在echo不打印出数组的值,所以我假设它与定义的数组的范围有关.

我是Shell脚本的新手,有人可以帮助我理解上面例子中的变量范围吗?

unix shell scripting ksh

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

使用Reflection调用超类方法

我有2节课,比如A&B:

Class A extends B {
    public void subClassMthd(){
        System.out.println("Hello");
    }
}

Class B {
    public void printHelloWorld {
        System.out.println("Hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我使用反射来调用类A上的方法.我还想调用类B中的printHelloWorld方法.

我试过用

Class clazz = Class.forName("com.test.ClassA");
Object classAInstance= clazz.newInstance();
Method superClassmthd = classAInstance.getClass()
    .getSuperclass().getMethod("printHelloWorld", null);
superClassmthd.invoke(classAInstance);
Run Code Online (Sandbox Code Playgroud)

也尝试过

Class clazz = Class.forName("com.test.ClassA");
Object classAInstance= clazz.newInstance();
Class superClazz = Class.forName(classAInstance.getClass().getSuperclass().getName());
Object superclassInstance = superClazz.newInstance();
Method superClassmthd = superclassInstance.getMethod("printHelloWorld", null);
superClassmthd.invoke(superclassInstance );
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用; 他们抛出一个InstantiationException.

我在这做错了什么?

java

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

Spring Security 3的AuthenticationSuccessHandler示例

我是Spring Security 3的新手.我正在使用角色供用户登录.

我想基于该用户的角色将用户重定向到不同的页面,我理解是我必须实现AuthenticationSuccessHandler相同的,但是在这个方向上的一些示例会有所帮助.

提前谢谢,Vivek

java spring

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

@RequestParam的使用在Spring 3中引发错误

我使用@RequestParam注释来获取请求参数,并使用相同的方法将值插入到数据库中.我已将控制器设置为重定向到同一页面,该页面包含用户输入值的文本字段,这些值正在使用@RequestParam注释进行读取.

但是在我将值输入文本字段并单击"提交"后,它会抛出此错误

请求处理失败; 嵌套异常是java.lang.IllegalArgumentException:参数类型名称[java.lang.String]不可用,参数名称信息也没有在类文件中找到.

我是Spring 3的新手,无法理解错误.任何人都可以对此有所了解.

提前谢谢,Vivek

spring annotations

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

在Ant中循环遍历属性

我想了解Ant中有以下可能

  • 阅读一处房产 eg : ${for.loop.condition}

  • 根据上面的属性值,创建一个for循环

  • 并循环从该值动态创建一个字符串

我已经阅读了ant-contrib任务,但不确定这是否会帮助我.

任何例子都会对我有帮助

ant

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

DB2时间戳选择语句

我正在尝试运行一个简单的查询,它根据时间戳获取数据,如下所示:

SELECT * 
FROM <table_name> 
WHERE id = 1 
AND usagetime = timestamp('2012-09-03 08:03:06') 
WITH UR;
Run Code Online (Sandbox Code Playgroud)

这似乎没有向我返回记录,而此记录在数据库中存在id = 1.

我在这做错了什么?

列使用时间的数据类型是正确的,设置为timestamp.

db2 timestamp

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

使用StreamGobbler处理输入

我通过以下URL浏览了StreamGobbler

JavaWorld:Stream Gobbler

我理解它的用法和原因.但是,所涵盖的场景只是那些可能存在来自命令/处理错误的输出的场景.

我没有找到使用StreamGobbler来处理输入的任何场景.例如,在mailx,我必须指定电子邮件的正文,我已按以下格式完成

Process proc = Runtime.getRuntime().exec(cmd);
OutputStreamWriter osw = new OutputStreamWriter(proc.getOutputStream());
osw.write(mailBody);
osw.close();
Run Code Online (Sandbox Code Playgroud)

如何通过StreamGobbler处理,或者不需要通过它处理它.

java outputstream runtime.exec

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