首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请教一个有关问题,请高手解答

2011-12-24 
请教一个问题,请高手解答我要实现数据库操作的封装,写了一个方法用的是sqlserver2000数据库中usersexbrith

请教一个问题,请高手解答
我要实现数据库操作的封装,写了一个方法
用的是   sqlserver   2000
数据库中usersexbrith,   updatedate为datatime类型

public   java.sql.Date   sqlDate,sqlUpdate;

public   void   update(Person   person)   throws   Exception   {

String   sql   =   "update   T_USERS     set   provincename=?,cityname=?,townname=?,usergroup=?,userid=?,userkind=?,userturename=?,usersex=?,usersexbrith=?,userpass=?   usercompass=?   passquestion=?,passanswer=?,contactman=?,useraddr=?,useremail=?,mobilenum=?,telnum=?,qqnum=?,userphoto=?,currstate=?,loginnum=?,updatedate=?,remarks=?   where   id=? ";
System.out.println(sql);
PreparedStatement   pstmt   =   null;
Connection   conn   =   null;
try   {
conn   =   new   ConnectionDB().getConnection();
pstmt   =   conn.prepareStatement(sql);
pstmt.setString(1,   person.getProvincename());
pstmt.setString(2,   person.getCityname());
pstmt.setString(3,   person.getTownname());
pstmt.setString(4,   person.getUsergroup());
pstmt.setString(5,   person.getUserid());
pstmt.setString(6,   person.getUserkind());
pstmt.setString(7,   person.getUserturename());
pstmt.setString(8,   person.getUsersex());


SimpleDateFormat   bartDateFormat   =   new   SimpleDateFormat( "yyyy-MM-dd ");
String   dateStringToParse   =   person.getUsersexbrith();
try   {
java.util.Date   date   =   bartDateFormat.parse(dateStringToParse);
  sqlDate   =   new   java.sql.Date(date.getTime());
System.out.println(sqlDate.getTime());
}   catch   (Exception   ex)   {
System.out.println(ex.getMessage());
}

pstmt.setDate(9,   sqlDate);
pstmt.setString(10,   person.getUserpass());
pstmt.setString(11,   person.getUsercompass());
pstmt.setString(12,   person.getPassquestion());
pstmt.setString(13,   person.getPassanswer());
pstmt.setString(14,   person.getContactman());
pstmt.setString(15,   person.getUseraddr());
pstmt.setString(16,   person.getUseremail());
pstmt.setString(17,   person.getMobilenum());
pstmt.setString(18,   person.getTelnum());
pstmt.setString(19,   person.getQqnum());
pstmt.setString(20,   person.getUserphoto());
pstmt.setString(21,   person.getCurrstate());
pstmt.setString(22,   person.getLoginnum());

SimpleDateFormat   df   =   new   SimpleDateFormat( "yyyy-MM-dd ");
String   stp   =   person.getUpdatedate();
try   {
java.util.Date   sdate   =   df.parse(stp);
  sqlUpdate   =   new   java.sql.Date(sdate.getTime());
System.out.println(sqlUpdate.getTime());
}   catch   (Exception   ex)   {
System.out.println(ex.getMessage());
}


pstmt.setDate(23,   sqlUpdate);

pstmt.setString(24,   person.getRemarks());

pstmt.setInt(25,   person.getId());
System.out.println( "update   person!!!!!!!!!!!!! ");
pstmt.executeUpdate();

//pstmt.close();
}   catch   (Exception   e)   {
throw   new   Exception( "操作出现异常 ");
}   finally   {
//conn.close();//   关闭数据库连接
}


}


报错为:
at   com.jxl.login.PersonDAOImpl.update(PersonDAOImpl.java:259)

说这一行出错:pstmt.executeUpdate();


[解决办法]
String sql = "update T_USERS set provincename=?,cityname=?,townname=?,usergroup=?,userid=?,userkind=?,userturename=?,usersex=?,usersexbrith=?,userpass=? usercompass=? passquestion=?,passanswer=?,contactman=?,useraddr=?,useremail=?,mobilenum=?,telnum=?,qqnum=?,userphoto=?,currstate=?,loginnum=?,updatedate=?,remarks=? where id=? ";
看看你定义的SQL语句是不是出现问题了 字符 应该是‘“+变量+“’的
[解决办法]
我怀疑你出现了空的数据,你可以查一下。 person.getXXXX();是否能拿到值
[解决办法]
组成SQL句后,在执行之前,设个断点,看看里面的SQL句在SQL server中能否正常执行..

热点排行
Bad Request.