牛骨文教育服务平台(让学习变的简单)
博文笔记

sql server 2008 datetime类型如何通过hibernate注解,且正确插入

创建时间:2014-04-30 投稿人: 浏览次数:3589

前阵子遇到了一个问题: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,这样,就可以按照我们想要的时间格式将时间戳插入的数据库了!

 

 

 

 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。