sql server 2008 datetime型別如何通過hibernate註解,且正確插入
阿新 • • 發佈:2019-01-23
前陣子遇到了一個問題: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,這樣,就可以按照我們想要的時間格式將時間戳插入的資料庫了!