我试图使用JNA调用DLL中的方法.到目前为止已经加载了DLL
Runtime.getRuntime().load("myworkspace/test.dll");
Run Code Online (Sandbox Code Playgroud)
这个dll包含了我需要访问的方法.如何在Java文件中执行DLL中的方法.我是否创建了一个对象或DLL的某些东西,然后在点运算符后获取方法名称.
我的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会抛出一个错误
请给我任何建议
我创建了一个像这样的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以获取值,这是一个繁琐的过程.有没有什么方法可以让我得到数组,所以我只需要迭代它来获取值.
我编写了一个示例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脚本的新手,有人可以帮助我理解上面例子中的变量范围吗?
我有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.
我在这做错了什么?
我是Spring Security 3的新手.我正在使用角色供用户登录.
我想基于该用户的角色将用户重定向到不同的页面,我理解是我必须实现AuthenticationSuccessHandler相同的,但是在这个方向上的一些示例会有所帮助.
提前谢谢,Vivek
我使用@RequestParam注释来获取请求参数,并使用相同的方法将值插入到数据库中.我已将控制器设置为重定向到同一页面,该页面包含用户输入值的文本字段,这些值正在使用@RequestParam注释进行读取.
但是在我将值输入文本字段并单击"提交"后,它会抛出此错误
请求处理失败; 嵌套异常是java.lang.IllegalArgumentException:参数类型名称[java.lang.String]不可用,参数名称信息也没有在类文件中找到.
我是Spring 3的新手,无法理解错误.任何人都可以对此有所了解.
提前谢谢,Vivek
我想了解Ant中有以下可能
阅读一处房产 eg : ${for.loop.condition}
根据上面的属性值,创建一个for循环
并循环从该值动态创建一个字符串
我已经阅读了ant-contrib任务,但不确定这是否会帮助我.
任何例子都会对我有帮助
我正在尝试运行一个简单的查询,它根据时间戳获取数据,如下所示:
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.
我通过以下URL浏览了StreamGobbler
我理解它的用法和原因.但是,所涵盖的场景只是那些可能存在来自命令/处理错误的输出的场景.
我没有找到使用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 ×5
spring ×2
annotations ×1
ant ×1
db2 ×1
dll ×1
java-ee ×1
javascript ×1
jna ×1
jquery ×1
json ×1
ksh ×1
mybatis ×1
outputstream ×1
runtime.exec ×1
scripting ×1
shell ×1
spring-mvc ×1
timestamp ×1
unix ×1