这段代码可以翻译为以下内容:
private void queryforlist(string SQL, object[] parameters, Class c)
{
if (parameters != null)
{
for(int i=0; parameters.length; i++)
{
if (parameters[i] instanceof String )
{
String param = "\""+parameters[i]+"\"";
} else if (parameters[i] instanceof Integer )
{
}
}
}
}
这对于接受动态数据类型非常有用,例如整数、字符串等,并可单独处理它们,例如:在Oracle数据库/提供程序中为日期添加to_date()。
它被定义为一个对象数组,以接受多个参数,因此查询可以按您想要的方式构建。
这条特定的线:
new Object[] { 3 }
可以翻译为:
Object[] AnonymousArrayObject = new Object[1]
AnonymousArrayObject [0] = 3
由于queryForList方法接收一个对象数组作为参数,所以有多种调用该方法的方式:
示例1
getJdbcTemplate().queryForList(
"DELETE FROM foo WHERE id = ?",
new Object[] { 3 },
String.class
);
例子2
Object[] Parameters = new Object[1];
parameters[0] = 3;
getJdbcTemplate().queryForList(
"DELETE FROM foo WHERE id = ?",
Parameters,
String.class
);
示例3
Object[] Parameters = new Object[] { 3 };
getJdbcTemplate().queryForList(
"DELETE FROM foo WHERE id = ?",
Parameters,
String.class
);
例子1、2和3在做同样的事情
例子4
getJdbcTemplate().queryForList(
"DELETE FROM foo WHERE id = ?",
null,
String.class
);
例子5
Object[] Parameters = null;
getJdbcTemplate().queryForList(
"DELETE FROM foo WHERE id = ?",
Parameters,
String.class
);
示例4和示例5正在执行相同的操作
这被称为什么?
这被称为数组的创建和初始化的简写,因为您不需要声明变量以访问对象数组在那个特定的时刻。
那里发生了什么?
答案中有解释!
如何访问这些参数?
答案中有解释!
自动装箱
{}
)中初始化数组。在这个例子中,使用的是一个Integer
3。 - Danny