jdbc时间类型

UserDao

修改项目:

  1. 把UserDao修改为接口,然后把原来的UserDao修改类名为UserDaoImpl
  2. 修改UserService中对UserDao的实例:private UserDao userDao=DaoFactory
DAO模式
DAO(Data Access Object)模式就是写一个类,把访问数据库的代码封装起来。DAO在数据库与业务逻辑(Server)之间。
实体域,即操作的对象,例如我们操作的表时user表,那么就需要先写一个user类;
DAO模式需要先提供一个DAO接口;
然后再提供一个DAO接口的实现类;
再编写一个DAO工厂,server通过工厂来获取DAO实现。
时间类型:
数据库类型与java中类型的对应关系
DATE-->java.sql.Date
TIME-->java.sql.Time
TIMESTAMP-->java.sql.Timestamp
	域对象(domain)中的所有属性不能出现java.sql包下的东西!既不能使用java.sql.Date;
	ResultSet#getDate()返回的是java.sql.Date()
	PreparedStatement#setDate(int , Date),其中第二个参数也是java.sql.Date
时间类型的转换:
	java.util.Date--->java.sql.Date、Time、Timestamp
			把util的Date转化为毫秒值
			使用毫秒值创建sql的Date、Time、Timestamp
	java.sql.Date、Time、Timestamp--->java.util.Date
			这一步不需要处理,因为java.sql.Date就是java.utilDate;
			java.util.Date  date=new  java.util.Date();
			long  l =date.getTime();
			java.sql.Date  sql.Date=new  java.sql.Date(l);


SQL包下相关时间的方法:
	java.sql.ResultSet#java.sqlDate.getDate()
	java.sql.PreparedStatement#setDate(int col, java.sql.Date  date)

例如:user.setBirthday(rs.getDate("birthday"));其中rs.getDate()方法返回的是java.sql.Date,而User的birthday必须是java.util.Date类型。把sql包的Date赋给util包下的Date,这是子类给父类,不用强转!!!
例如:pstmt.setDate(3,user.getBirthday()),其中user.getBirthday()返回的是Date,而setDate() 方法的参数类型是sql包下的Date,这说明需要把utilDate转换成SQLDate。这需要处理类型转换问题!!!
pstmt.setDate(3, new  java.sql.Date(user.getBirthday().getTime()))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值