默认情况下,我们插入数据库中date类型的格式是:2011-11-03 可以直接插入。
Date date=new Date();如何快速转化呢?
1.将util中的Date转换为sql中的date
Date d = new Date(); System.out.println("d:=" + d); java.sql.Date d1 = new java.sql.Date(d.getTime()); System.out.println("d1:=" + d1);
先util格式的date转化为1970.01.0的毫秒,然后通过sql中的date的构造函数传入
2.将sql中的date转化为util中的date
java.sql.Date d1 = new java.sql.Date(d.getTime()); System.out.println("d1:=" + d1); Date d2 = new Date(d1.getTime());
同理
数据库开发中date的demo
package cj; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Date; public class DateTest { public static void main(String[] args) throws SQLException { // create("name2", new Date(), 500.0f); Date d = read(7); System.out.println(d); } static Date read(int id) throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; Date birthday = null; try { // 2.建立连接 conn = JdbcUtil.getConnection(); // 3.创建语句 st = conn.createStatement(); // 4.执行语句 rs = st.executeQuery("select birthday from user where id=" + id); // 5.处理结果 while (rs.next()) { //birthday = new Date(rs.getDate("birthday").getTime()); birthday = rs.getDate("birthday"); } } finally { JdbcUtil.free(rs, st, conn); } return birthday; } static void create(String name, Date birthday, float money) throws SQLException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 2.建立连接 conn = JdbcUtil.getConnection(); // conn = JdbcUtilsSing.getInstance().getConnection(); // 3.创建语句 String sql = "insert into user(name,birthday, money) values (?, ?, ?) "; ps = conn.prepareStatement(sql); ps.setString(1, name); ps.setDate(2, new java.sql.Date(birthday.getTime())); ps.setFloat(3, money); // 4.执行语句 int i = ps.executeUpdate(); System.out.println("i=" + i); } finally { JdbcUtil.free(rs, ps, conn); } } }