默认情况下,我们插入数据库中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);
}
}
}