1. Java的日期类: java.util.Date, 可以表示日期和时间。
2. 日期、时间和时间戳
2.1. 日期、时间和时间戳是对java.util.Date日期类的扩展。
2.2. 日期类型: java.sql.Date, 可以表示MySQL的date类型。
2.3. 时间类型: java.sql.Time, 可以表示MySQL的time类型。
2.4. 时间戳类型: java.sql.Timestamp, 可以表示MySQL的datetime和timestamp类型。
3. 新建一个JDBCRiQi工程, 使用我们之前的JDBCUtil.java和jdbc.properties属性文件
4. 编写SqlTime.java, 打印几个日期类型, java.sql.Timestamp是有毫秒数的, MySQL的timestamp没有毫秒数。
5. 编写RiQiDao.java接口
package com.lywgames.dao;
import java.sql.Time;
import java.sql.Timestamp;
import java.sql.Date;
public interface RiQiDao {
/**
* 创建表
*/
public void createTable();
/**
* 插入数据
* @param birthday
* @param date
* @param time
* @param ts
*/
public void insert(Timestamp birthday, Date date, Time time, Timestamp ts);
/**
* 查找所有数据
*/
public void findAll();
/**
* 删除表
*/
public void dropTable();
}
6. 编写RiQiDaoImpl.java, 进行表的创建、插入数据、查找数据和删除表
package com.lywgames.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Time;
import java.sql.Timestamp;
import java.sql.Date;
import com.lywgames.dao.RiQiDao;
import com.lywgames.util.JDBCUtil;
public class RiQiDaoImpl implements RiQiDao {
@Override
public void createTable() {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = JDBCUtil.getConn();
String sql = "create table `riqi`(`id` int(11) not null auto_increment, `birthday` datetime default null, `regDate` date default null, `regTime` time default null, `reg` timestamp default null, primary key(id))";
ps = conn.prepareStatement(sql);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.release(conn, ps);
}
}
@Override
public void insert(Timestamp birthday, Date date, Time time, Timestamp ts) {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = JDBCUtil.getConn();
String sql = "insert into `riqi` values (null, ?, ?, ?, ?)";
ps = conn.prepareStatement(sql);
ps.setTimestamp(1, birthday);
ps.setDate(2, date);
ps.setTime(3, time);
ps.setTimestamp(4, ts);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.release(conn, ps);
}
}
@Override
public void findAll() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JDBCUtil.getConn();
String sql = "select * from `riqi`";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
System.out.println(rs.getInt(1) + ", " + rs.getTimestamp(2) + ", " + rs.getDate(3) + ", " + rs.getTime(4) + ", " + rs.getTimestamp(5));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.release(conn, ps);
}
}
@Override
public void dropTable() {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = JDBCUtil.getConn();
String sql = "drop table `riqi`";
ps = conn.prepareStatement(sql);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.release(conn, ps);
}
}
}
7. 运行程序, 查询结果