JDBC(数据类型和日期问题)

String sql = "select id, name, birthday, money from user where name = ?";
while (rs.next()) { // 推荐写列名,不建议写索引号
				System.out.println("id:" + rs.getInt("id") + '\t' + rs.getString("name") + '\t'
						+ rs.getDate("birthday") + '\t' + rs.getFloat("money"));
			}

Date

package zucc.edu.cn.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date; // 这里的Date用的是java.util包里的Date类

import java.sql.PreparedStatement;

public class DateTest {
	public static void main(String[] args) throws SQLException {
		create("ChenJM", new Date(), 600);
	}

	public static void create(String name, Date birthday, float money) throws SQLException {
		Connection conn = null; // 这里的Date用的是java.util包里的Date类
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			// 2.建立连接
			conn = jdbcUtils.getinstance().getConnection();

			// 3.创建执行SQL的语句
			String sql = "insert into user(name, birthday, money) value (?, ?, ?)";
			ps = conn.prepareStatement(sql);
			ps.setString(1, name);
			ps.setDate(2, new java.sql.Date(birthday.getTime()));
			/*
			 * java.sql包继承自java.util包 所以需要把util.Date类型的数据转换成sql.Date类型的数据
			 * java.sql.Date(birthday.getTime())
			 */
			ps.setFloat(3, money);

			// 4.执行语句
			ps.executeUpdate();

		} finally {
			// 6.释放资源
			jdbcUtils.free(rs, ps, conn);
		}
	}
}
1	JiangLR	1998-01-02	333
2	HunagWB	1998-01-01	433
3	FanJH	1997-12-12	533
4	JiangJY	1997-01-02	633
6	ChenJM	2018-04-17	600

public static Date read(int id) throws SQLException {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		Date birthday = null;
		try {
			// 2.建立连接
			conn = jdbcUtils.getinstance().getConnection();

			// 3.创建执行SQL的语句
			String sql = "select birthday from user where id = ?";
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);

			// 4.执行语句
			rs = ps.executeQuery();

			// 5.处理结果
			while (rs.next()) {
				birthday = new Date(rs.getDate("birthday").getTime());
				/*
				 * rs.getDate("birthday").getTime()是java.sql.Date的数据
				 * 而new Date()是java.util包的类
				 * birthday是java.util.Date的数据 最后输出例:Tue April 17 00:00:00 CST
				 * 2018
				 */
				birthday = rs.getDate("birthday");
				/*
				 * birthday是java.util.Date的数据,java.sql.Date的getDate()方法已经做了格式化操作
				 * 所以最后输出例:2018-4-17
				 */
			}
		} finally {
			// 6.释放资源
			jdbcUtils.free(rs, ps, conn);
		}
		return birthday;
	}

展开阅读全文

没有更多推荐了,返回首页