Hibernate 实战中の小问题

1、完成用户密码重置的问题

想要通过电话号码来更新用户的密码。 但是之前学习的是,如果想要更改,需要先查询,再更新。

这里有个问题,还得知道主键?

User user = (User) session.get(User.class,1);

我的主键是id,是自动增1的无意义字段。 不可取。

然后网上有新的方法:【http://blog.csdn.net/zhouxinhong/article/details/7415691】

最后我用了update来更新:

String hql="update Userinfo u set u.password=:password where u.phone= :phone";
Query query=session.createQuery(hql).setParameter("phone", tphone).setParameter("password", tpassword);


2、因为我需要记录每次用户申请的时间,所以mysql里面定义了timestamp类型的字段,然后我需要把此刻时间插入到数据库中:

http://blog.csdn.net/tolcf/article/details/41153995

Timestamp rtime=new Timestamp(System.currentTimeMillis());


3、最后我遇到的这个问题就是:

Transaction ts2 = session.beginTransaction();
		String hql2="from Userinfo u order by phone";
		Query query2=session.createQuery(hql);	
		List <Userinfo>u2=query.list();
		
		for(Userinfo u:u2){
			System.out.println("result:"+u.getUsername());
		}

当时不知道为什么打印的结果不对,一直查了很久很久很久。

后来问了女神,女神让我把查询出来的list的size打印出来看看。 然后我才发现,这里居然是因为: hql 和hql2 的区别...【后来会发现,这里还埋下了数据库死锁的问题...】


第一还是想说或命名规范的问题。

第二更想说,多练多做,自己亲自上手做才会知道,很多知识看别人做都很简单,自己做的时候真的各种出错。但是也是在这样不断累积错误的过程中,自己慢慢就掌握了这门知识,更加深了对它理论上的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值