博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC之日期问题
阅读量:2349 次
发布时间:2019-05-10

本文共 2201 字,大约阅读时间需要 7 分钟。

在Java中有两个日期类型(当然JDK8还新增java.time.LocalDate),一个是java.sql.Date,另一个是java.util.Date类,其中java.sql.Date类继承自java.util.Date类。同时需要注意的是,java.sql.Date只包含日期,而java.util.Date还包含时间。

测试类中的代码:

package cn.itcast.jdbc;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Date;import org.junit.Test;/** * 测试java.util.Date和java.sql.Date */public class DateTest {		/**	 * 该方法测试成功	 * @throws SQLException	 */	@Test	public void testCreate() throws SQLException {		/**		 * 注意这里传入的是java.util.Date		 */		create("name2", new Date(), 500.0f);	}		/**	 * 该方法测试成功	 * @throws SQLException	 */	@Test	public void testRead() throws SQLException {		Date d = read(3);		System.out.println(d);	}		/**	 * 通过id查询结果	 * @param id	 * @return	 * @throws SQLException	 */	static Date read(int id) throws SQLException {		Connection conn = null;		Statement st = null;		ResultSet rs = null;		Date birthday = null;				try{			conn = JdbcUtils.getConnection();			st = conn.createStatement();			rs = st.executeQuery("select birthday  from user where id=" + id);						while(rs.next()) {				//通过这种方式构造会输出时间				//输出结果:Tue May 30 00:00:00 CST 2017				birthday = new Date(rs.getDate("birthday").getTime());				//注意:下面的方法返回的是java.sql.Date,但是java.sql.Date是继承				//自java.util.Date,所以可以直接进行赋值操作,这样写输出日期				//输出结果:2017-05-30				//birthday = rs.getDate("birthday");			}		}finally {			JdbcUtils.free(rs, st, conn);		}		return birthday;	}		/**	 * 执行插入操作	 * @param name	 * @param birthday java.util.Date	 * @param money	 * @throws SQLException	 */	static void create(String name, Date birthday, float money) throws SQLException {		Connection conn = null;		PreparedStatement ps = null;		ResultSet rs = null;				try{			conn = JdbcUtils.getConnection();			String sql = "insert into user(name,birthday, money) values (?, ?, ?)";			ps = conn.prepareStatement(sql);			ps.setString(1, name);			//这里将java.util.Date转换为java.sql.Date,			//并且该方法接收参数是java.sql.Date			ps.setDate(2, new java.sql.Date(birthday.getTime()));			ps.setFloat(3, money);						int i = ps.executeUpdate();						//i表示的是影响的结果			System.out.println("i=" + i);		}finally{			JdbcUtils.free(rs, ps, conn);		}	}}

转载地址:http://jklvb.baihongyu.com/

你可能感兴趣的文章
Tensorflow的高级封装
查看>>
Storm 1.1.0 集群安装
查看>>
图像压缩算法
查看>>
一张图看懂小程序全生态
查看>>
electron开发
查看>>
Electron如何调用NodeJS扩展模块
查看>>
NodeJS通过ffi调用DLL
查看>>
Electron通过ffi调用DLL
查看>>
Node.js & Electron的扩展模块
查看>>
Mysql semi-sync VS group replication, 谁快?
查看>>
Android Looper Message MessageQueue Handler
查看>>
Win10下安装卸载Oracle11g的教程及各种坑
查看>>
更新mysql5.7修改字符集
查看>>
Windows系统护眼色设置
查看>>
JUC多线程&lambda之美&ThreadLocal
查看>>
碎片清理
查看>>
程序员不能错过的技术网站
查看>>
冒泡排序(分析+代码调优)
查看>>
Vue
查看>>
乐优商城总结
查看>>