027_jdbc-mysql几个常用的日期类型

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. 运行程序, 查询结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值