你必须用setString的原因是不是你在一个循环(或是函数)里面循环一个setString?没关系,在循环里面根据类型动态调用set函数就是了。
setQueryParameter(object obj)
{
if(obj.getClass().getName() == "String")
setString(....);
if(obj.getClass().getName() == "TimeStamp")
setTimestamp(....);
}
setQueryParameter(object obj)
{
if(obj.getClass().getName() == "String")
setString(....);
if(obj.getClass().getName() == "TimeStamp")
setTimestamp(....);
}
解决方案 »
- Struts2标签替换<% %>的java语句
- Eclipse开发JSP问题
- 在request参数中过滤掉一个一个参数的问题?(不用传统的过滤器实现)
- 数据发送问题。
- 初学JAVA!请问一下安装了JDK后能不能在WIN98下配置环境变量?
- 请问那里有EJB、SESSIONBEAN的教程或是源码一类的,可以速成的~谢谢!有重谢!
- JSP连不上SQL Server。请大虾们帮忙呀!
- 奇怪的数据库问题.以前没有见过的
- 怎样用JAVA写一个根据当前时间产生一个随机,并且不相同的密码字串
- 因为一不小心把表单名称搞错,现将错就错,要实现:String msg[]=request.getParameterValues("pid");怎么办?
- 如何获取远程的ip地址?。。。在线等待,谢了!!!
- 使用jspsmartupload时,包含FILE控件的form是否必须写ENCTYPE属性,等待...
在后台是没法取得他们的类型的
首先有没有办法是setString(1,String变量)设置Date型的数据
如果没有,我可以考虑你的方法,用ArrayList储存各种类型的变量
然后取出来的时候判断类型,但是用这种方法我的程序改动较大
setDate(java.sql.Date.valueOf(字符窜));
我现在做的是一个公用类,可以很多程序用到他
比如有的时候,前台有20个数据,有的时候前台有30个数据
我不能判断什么时候应该用setDate,什么时候用setString
所以我统一用了setString,因为其他类型都可以用setString写入,
没有什么问题的
就是Date类型出了问题,他提示格式不匹配,我想肯定有一种默认的
格式我不知道,用setString也肯定行的
如:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String time = sdf.format(AblUtil.getGregorianCalendar().getTime());
原来我没用批处理,用SQL直接写数据库没问题。
举个例子,我在前台输入的时候就要求这种格式2002-09-11 10:00:00
用String mydatetime = request.getParameter("mydatetime")
然后用ps.setString(1,mydatetime)写入oracle中的Date字段中
这样能够实现吗
是一个好的方法,
但是还是没有符合我的要求
如果能用setString(1,StringValue)写入就最好了,
因为我运行的时候只是提示格式不符,
我想肯定有办法的
就能用getTimestamp了
public static Timestamp toTimestamp(String str)
throws ParseException
{
try
{
if(str == null || "".equals(str.trim()))
return null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd H:mm:ss");
java.util.Date dd1 = df.parse(str);
Calendar cal = Calendar.getInstance();
cal.setTime(dd1);
java.util.Date dt = cal.getTime();
long lDtm = dt.getTime();
return new java.sql.Timestamp( lDtm );
}
catch(ParseException e)
{
throw new ParseException("You should pass the String like this:2001-4-5 21:11:11", 1);
}
}将你得到的StringValue值直接转换成Timestamp类型即可。
“就能用getTimestamp了”
这里写错了
更正
“就能用setTimestamp了”