关于向Mysql数据库中插入时间只有日期没有时分秒的问题

关于向Mysql数据库中插入时间只有日期没有时分秒以及jsp页面显示日期时间多了个.0的问题

Java.util.Date需要转换为java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Date的子类Timestamp

java.util.Date是不能直接插入数据库中的,虽然它包含了日期和时分秒。java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;java.sql.Time可以直接插入数据库,但是它只有时间,没有日期

使用java.sql.Timestamp来向数据库插入。java.sql.Timestamp可包含了日前和到毫秒的时间值,在程序中,我们常常是使用的java.util.Date,所以就要将java.util.Date转化为java.sql.Timestamp

1.如下为插入数据时:

		Connection conn = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;

		try {
			conn = DBUtil.getConnection();
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, message.getmTitle());
			psmt.setString(2, message.getmContent());
			psmt.setTimestamp(3, new Timestamp(message.getmPublishTime().getTime()));
			psmt.setInt(4, message.geteId());
			psmt.execute();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

2.取出数据时:
try {
			conn = DBUtil.getConnection();
			psmt = conn.prepareStatement(sql);
			rs = psmt.executeQuery();
			
			while(rs.next()){
				m=new Message();
				m.setmId(rs.getInt("m_id"));
				m.setmTitle(rs.getString("m_title"));
				m.setmContent(rs.getString("m_content"));
				m.setmPublishTime(rs.getTimestamp("m_publishTime"));
				m.seteId(rs.getInt("e_id"));
				messages.add(m);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

3.jsp页面显示时多了个0,可以用如下方式解决:

  用jstl的标签,(项目需要引入jstl的jar,页面需要引入标签库

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>


				
					${me.message.mTitle}
					${me.message.mContent}
					
					${me.employee.eName}
					回复(..)
				
			




你可能感兴趣的:(mysql)