MySQL 问题:向数据库中插入时间类型数据,数据库中只有日期没有时分秒

一、关于向MySQL数据库中插入时间只有日期没有时分秒  
  java.util.Date是不能直接插入数据库中的,虽然它包含了日期和时分秒。
  java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;
  java.sql.Time可以直接插入数据库,但是它只有时间,没有日期
Java.util.Date需要转换为Java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Java.sql.Date类的子类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()));//将java.util.Date转化为java.sql.Timestamp
            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();

二.从mysql数据库取出时间类型数据到jsp页面显示时多了个0,可以用如下方式解决:

 

     用jstl的标签,(项目需要引入jstl的jar,页面需要引入标签库<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>)

 

  1)用标签格式化一下

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


 
 

你可能感兴趣的:(MySQL系列)