sql server 2008 datetime类型如何通过hibernate注解,且正确插入
前阵子遇到了一个问题:sql server 2008数据库的datetime2(7)类型的数据,如何通过hibernate来注解,同时如何将时间格式正确转化,然后正确插入到数据库中?
似乎在网上也没有找到一个有效的方法,一日,忽受一大师指点,然后查看java API文档发现:
java.util.Date还有几个有用的子类,其中timestamp就有如下功能
那么,有一个这么一个好用的Timestamp子类,我们就基本上不需要自己编写转换的工具类了。转化方法如下:
其中,保存用户注册时间的控制器部分代码如下:
@RequestMapping(value="openAccount",method=RequestMethod.POST) public String openAccount(String realName,String cellphone,String unative,String email, int userCardType,String userCardNum,String adress, HttpSession session,HttpServletRequest request,RedirectAttributes reAttributes) { User user = new User(); user.setRealName(realName); user.setCelphone(cellphone); user.setUnative(unative); user.setEmail(email); user.setUserCardType(userCardType); user.setUserCardNum(userCardNum); user.setAdress(adress); user.setRegisterDate(Timestamp.valueOf(DateUtil.getNowDate()));//insert now timestamp System.out.println(Timestamp.valueOf(DateUtil.getNowDate())); //search the user information,if it not exist,save the user info first if(!userServiceImpl.isUserNotExist("userCardNum", userCardNum)) { userServiceImpl.save(user); } //set user to session session.setAttribute("user", user); //generate the 16 card number String number = GenerateCardNumUtil.generateNum(16); // model.addAttribute("bankcarNum", number); request.setAttribute("bankcarNum", number); reAttributes.addAttribute("bankcarNum", number); return "/account/bindCard.jsp"; }
DateUtil类
public class DateUtil { public static String getNowDate() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.000"); return sdf.format(new Date()); } public static String getNowTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.toString(); } }
OK,这样,就可以按照我们想要的时间格式将时间戳插入的数据库了!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。