form->action->po

Sarah--Conquering 说:
  日本一家公司6日对外宣布,该公司已开发研制出一款新型DVD光盘,制成该光盘的主要材料是从由玉米中提炼出的淀粉合成的塑料。虽然还未确定何时投入批量生产并上市销售,但该产品在生产时所消耗的石油以及排出的二氧化碳的量均少于同类产品,因此公司将打出“保护环境的绿色DVD”的宣传口号,向各相关企业进行推广。   

  据日本共同社报道,制作该DVD光盘的主要成分为从植物原料中提取并进行合成的塑料。此项技术已逐渐在制造电脑的主机箱等领域得到应用,但因其不耐高温而很难用于DVD光盘的制作。   

  日本这家公司在此次成功研制出了一种能在室内使用、且最高能耐55度的新型材料。虽然这种材料成本价相当于目前市场上同类产品的约3倍,对于产品的推广不利,但该公司则自信地表示:“该产品可以应用于CD及新一代的DVD。”

NovRain--Sth In the Way 说:
玉米提炼的啊,应该能吃吧
Sarah--Conquering 说:
dvd不想看了,仍到锅里,煮助吃掉,呵呵……
NovRain--Sth In the Way 说:
对啊,扔到烤箱里烤着吃也很香的
Sarah--Conquering 说:
ft
NovRain--Sth In the Way 说:
有个问题啊,hibernate不是有自动更新马,如果那个字段为空他更新到db吗
Sarah--Conquering 说:
你可以设置不让更新到null
NovRain--Sth In the Way 说:
这儿的persistance是手工拼sql,要命的是没有判断过空值
Sarah--Conquering 说:
会出错的
Sarah--Conquering 说:
为什么不用prepared statement?
NovRain--Sth In the Way 说:
天晓得,preparedStat能判断空值吗
Sarah--Conquering 说:
先判空,再填值
NovRain--Sth In the Way 说:
为空的话怎么填
Sarah--Conquering 说:
不填
NovRain--Sth In the Way 说:
那不是跟手工一样的
NovRain--Sth In the Way 说:
   sb.append("update tnp_trackable ");
   sb.append("set tnp_group_id=");
   sb.append(group_id);

   sb.append(", carr_type_id=");
   sb.append(carr_type_id);
   sb.append(", auto_shutdown_hour=");
   sb.append(auto_shutdown_hour);
   sb.append(", phone_model_id=");
   sb.append(DbUtil.toValue(phone_model_id));

Sarah--Conquering 说:
这叫用hibernate啊?
NovRain--Sth In the Way 说:
不是阿,没有用
Sarah--Conquering 说:
那就
先判空,再填值
NovRain--Sth In the Way 说:
if(...!=null){
NovRain--Sth In the Way 说:
再append?
Sarah--Conquering 说:
恩,不然执行sql会报错
NovRain--Sth In the Way 说:
有没有什么更好的办法了,一劳永逸的
NovRain--Sth In the Way 说:
值都是基本型,还没法判空,烤
Sarah--Conquering 说:
用hibernate
Sarah--Conquering 说:
基本型的好啊
Sarah--Conquering 说:
给预设值
NovRain--Sth In the Way 说:
谁知道它输入0的时候是想存0还是不存
Sarah--Conquering 说:
那就-1
NovRain--Sth In the Way 说:
谁知道它输入-1的时候是想存0还是不存

NovRain--Sth In the Way 说:
谁知道它输入-1的时候是想存-1还是不存

Sarah--Conquering 说:
那就if(...!=null){

NovRain--Sth In the Way 说:
呵呵,总之这个样子是没办法了,框架,我要你
Sarah--Conquering 说:
其实,最好还是用封装类传输参数
Sarah--Conquering 说:
便于判空
还是缺省值
Sarah--Conquering 说:
或者,至少用String类型传递参数
Sarah--Conquering 说:
/**
   * update a PO
   * @param templ
   * @throws HibernateException
   * @throws java.lang.Exception
   */
  public void updateTemplate(Template templ) throws HibernateException,
      Exception {
    Transaction transaction = null;
    Session session = sessionFactory.openSession();
    try {
      transaction = session.beginTransaction();
      session.update(templ);
      transaction.commit(
Sarah--Conquering 说:
}
    catch (HibernateException he) {
      if (transaction != null) {
        transaction.rollback();
      }
      throw he;
    }
    finally {
      session.close();
    }

  }
NovRain--Sth In the Way 说:
恩,以前怎么做的,忘了
Sarah--Conquering 说:
hibernate什么都不要你做
Sarah--Conquering 说:
这是我写的一段更新一条记录的代码,是不是很爽?
NovRain--Sth In the Way 说:
嫉妒阿
Sarah--Conquering 说:
你们的系统效率估计很高,所以不太可能用Hibernate
NovRain--Sth In the Way 说:
如果只要更新几个字段怎么办
Sarah--Conquering 说:
一定要拼的话,没办法了
NovRain--Sth In the Way 说:
hibernate岂不是有问题
Sarah--Conquering 说:
什么问题
NovRain--Sth In the Way 说:
为了更新两个字段更新所有字段,可能有50个
Sarah--Conquering 说:
不会的,hibernate最后会转化成sql语句执行必要的更新,它知道那些要变那些不要变
NovRain--Sth In the Way 说:
那就是说他更新前必须已经查出来了
Sarah--Conquering 说:
他有非常优秀的缓存机制
NovRain--Sth In the Way 说:
不管怎么样他也要查阿
Sarah--Conquering 说:
一个被更新的对象必须处于一个Hibernate的自治的session中
Sarah--Conquering 说:
所以会有一个固定的代码模式
Sarah--Conquering 说:
 Transaction transaction = null;
    Session session = sessionFactory.openSession();
    try {
      transaction = session.beginTransaction();
      session.save(templ);
      transaction.commit();
    }
    catch (HibernateException he) {
      if (transaction != null) {
        transaction.rollback();
      }
      throw he;
    }
    finally {
      session.close();
    }
Sarah--Conquering 说:
 Transaction transaction = null;
    Session session = sessionFactory.openSession();
    try {
      transaction = session.beginTransaction();
      ...
      transaction.commit();
    }
    catch (HibernateException he) {
      if (transaction != null) {
        transaction.rollback();
      }
      throw he;
    }
    finally {
      session.close();
    }
NovRain--Sth In the Way 说:
这个templ是已经查出来的吧
Sarah--Conquering 说:
在transaction.commit();
时才会去查
Sarah--Conquering 说:
然后更新,建议你课后了解了解hibernate的机制
NovRain--Sth In the Way 说:
恩,不过大概应该是这样了吧,他要能判断重复就得先查
Sarah--Conquering 说:
hinernate数据库,不允许重复,必须确定主键
NovRain--Sth In the Way 说:
这样他才能查到,呵呵
Sarah--Conquering 说:
我想还是有必要继续翻译hibernateInAction
NovRain--Sth In the Way 说:
恩,挺有收获,谢谢smart bear
Sarah--Conquering 说:
hehe SB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值