Java中针对Timestamp数据类型操作

来源:互联网 发布:益盟软件怎么样 编辑:程序博客网 时间:2024/05/20 00:39

刚入门的新人初次接触到java.sql.Timestamp数据类型时,往往会遇到各种错误(类型转换失败、数据格式化失败),本篇博客主要通过一个对学生表的插入和查询案例介绍Timestamp类型。

完整代码可以到https://github.com/psp0001060/LearnServlet下载。

一、数据库

数据库使用Oracle 10g 32位,存在一张表STU(学生表)。
这里写图片描述

二、项目结构图

这里写图片描述

三、关键代码

Stu (bean)

package sample.bean;import java.sql.Timestamp;public class Stu {    private int stuNo;    private String stuName;    private Timestamp createTime;    public int getStuNo() {        return stuNo;    }    public void setStuNo(int stuNo) {        this.stuNo = stuNo;    }    public String getStuName() {        return stuName;    }    public void setStuName(String stuName) {        this.stuName = stuName;    }    public Timestamp getCreateTime() {        return createTime;    }    public void setCreateTime(Timestamp createTime) {        this.createTime = createTime;    }}

StuDao

public class StuDao {    /**     * 插入stu表记录(PreparedStatement),效率更高,更安全     */     public void testInsertStuPs(Stu stu) {        Connection conn = DBUtil.getConnection(); // 创建数据库连接        PreparedStatement ps = null;// 创建PreparedStatement对象        try {            System.out.println("=========连接成功===============");            String sql = "insert into stu values(?,?,?)";            ps = conn.prepareStatement(sql); // 获取PreparedStatement对象            ps.setInt(1, stu.getStuNo());            ps.setString(2, stu.getStuName());            ps.setTimestamp(3, stu.getCreateTime());            int rs = ps.executeUpdate();// 执行更新语句            if (rs != 0) {                System.out.println("insert success");            } else {                System.out.println("insert fail");            }        } catch (SQLException e) {            e.printStackTrace();        } finally {            DBUtil.closePreparedStatement(ps);            DBUtil.closeConnection(conn);        }    }     /**     * 查询stu表记录     */    public Stu testSelectStuByNo(int stuNo) {        Connection conn = DBUtil.getConnection(); // 创建数据库连接        PreparedStatement statement = null;// 创建statement对象        ResultSet result = null;// 创建结果集ResultSet        Stu stu = new Stu();        try {            String sql = "select * from stu where stuno=?";            statement = conn.prepareStatement(sql); // 获取PreparedStatement对象            statement.setInt(1, stuNo);            result = statement.executeQuery();            if (result.next()) {                stu.setStuNo(result.getInt(1));                stu.setStuName(result.getString(2));                stu.setCreateTime(result.getTimestamp(3));            }        } catch (SQLException e) {            e.printStackTrace();        } finally {            DBUtil.closeResultSet(result);            DBUtil.closePreparedStatement(statement);            DBUtil.closeConnection(conn);        }        return stu;    }

TestFormat

public class TestFormat {    //插入学生记录    @Test    public void testInsert() {        Stu stu = new Stu();        stu.setStuNo(15);        stu.setStuName("dalin");        ////将String类型格式化为timestamp        String date = "2009-07-16T19:20"; // <input type="datetime-local"> 输入参数         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");          try {            Date dt = sdf.parse(date);            stu.setCreateTime(new Timestamp(dt.getTime()));        } catch (ParseException e) {            e.printStackTrace();        }        StuDao stuDao = new StuDao();        stuDao.testInsertStuPs(stu);    }    //根据学生编号查询学生记录    @Test    public void testSelectByNo(){        StuDao stuDao = new StuDao();        Stu stu = stuDao.testSelectStuByNo(15);        //将timestamp类型格式化为String        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");        System.out.println(stu.getCreateTime()); //2009-07-16 19:20:00.0        System.out.println(sdf.format(stu.getCreateTime())); //2009/07/16 19:20    }}
原创粉丝点击