我正在尝试构建一个字符串,将其作为IN语句中的SQL查询传递。
ArrayList<Object[]> arrayList = new ArrayList<Object[]>();
List<String> strings = new ArrayList<>(arrayList .size());
for (Object object : arrayList ) {
strings.add(Objects.toString(object, null));
}
System.out.println("askldnlkasdn"+strings);
这仍会打印出内存位置而不是实际的字符串
askldnlkasdn[[Ljava.lang.Object;@7bb11784, [Ljava.lang.Object;@33a10788, [Ljava.lang.Object;@7006c658, [Ljava.lang.Object;@34033bd0, [Ljava.lang.Object;@47fd17e3, [Ljava.lang.Object;@7cdbc5d3, [Ljava.lang.Object;@3aa9e816, [Ljava.lang.Object;@17d99928, [Ljava.lang.Object;@3834d63f, [Ljava.lang.Object;@1ae369b7]
我也试过了 使用StringBuilder和StringUtils。但事情似乎不起作用。
关于问题所在的任何输入?
答案 0 :(得分:1)
你应该在对象中覆盖方法toString
答案 1 :(得分:1)
您可以使用特定于SQL的java Array
。
try (PreparedStatement stmt = connection.prepareStatement("... IN (?) ...")) {
Object[] elements = ...
stmt.setArray(1, connection.createArray("TEXT", elements));
stmt.executeUpdate();
}
答案 2 :(得分:1)
您遇到的问题是您隐含地使用toString()
内Object
元素的ArrayList
方法。默认情况下,该方法返回Object
的类和地址。您应该在列表中使用的每个类中覆盖toString()
方法,以便返回您想要的内容。
答案 3 :(得分:0)
您可以将其另存为String
,就像此代码一样
ArrayList<String> arrayList = new ArrayList<>();
List<String> strings = new ArrayList<>(arrayList .size());
for (Object object : arrayList ) {
strings.add(Objects.toString(object, null));
}
System.out.println("askldnlkasdn"+strings);
或者您希望Object用于特定用途?
答案 4 :(得分:0)
这是可能有用的新代码,
$(function()
{
var all_errors = {'E1':0,'E2':0,'E3':0};
$("[id^='E1_']").click(function(){
all_errors.E1++;
console.log('errors', all_errors);
$.ajax({ url: 'data_insert.php',
data: {code: 1, btn1: all_errors.E1, btn2: all_errors.E2, btn3: all_errors.E3},
type: 'post',
success: function(output) {
console.log(output);
}});
});
});
我希望解决问题,如果没有请通知我,你可以将它用于多个维数组。