hibernate和struts初接触的一些问题。

我"project"是UTF-8中文编码,用的IDE是eclipse3.3,页面全保持UTF-8,但Mysql 插入的中文值全变成了乱码,mysql也是UTF-8字符集,所以怀疑是hibernate连接时需要加个参数。

  • 想请问下hofman等各位大大怎么设置这个连接,或者我的问题不是出在这儿的,那么又会是什么问题呢?

另外为什么我看到别人在调用 session.save或update方法时只需要flush一下就能保存,而我一定要再追加上Transaction的commit方法才行。 直接flush也不报错,但数据库里就是没有内容。

  • flush和commit的关系是怎么回事?
    可能是我没有查阅资料或者没有系统的学习原因吧,有没有需要系统的学习一下呢? 我现在还是入门,学会了用。 如果你没理解看下面的代码: 
CategoryForm cf = (CategoryForm) form;// TODO Auto-generated method
// stub
String name = cf.getCatName();
  ...

Session session = null;
try {
    session = HibernateSessionFactory.getSession();
    WpTerms wpt = new WpTerms();       //wp_terms表的对象。
    wpt.setName(name);
      ...

    session.save(wpt);
    session.flush();

    System.out.println("新目录创建成功: " + wpt.getTermId());

    try {
        WpTermTaxonomy wptt = new WpTermTaxonomy();  //wp_term_taxonomy表对象
        wptt.setTermId(wpt.getTermId());
          ...

        session.save(wptt);
        session.flush();

        request
                .setAttribute("resultMessage", "目录建立成功:"
                        + wpt.getName());
        return mapping.findForward("createSuccess");

    } catch (Exception e) {
        e.printStackTrace();
        request.setAttribute("errorMessage", "保存目录信息时出错,错误位置:02。");
    } finally {

        //就是这里,不用使用事物就保存不了,开始以为处理两个或更多表才就要用到,但一个表时也需要commit!
        Transaction t = session.beginTransaction();
        t.commit();
        session.close();
    }
} catch (Exception e) {
    e.printStackTrace();
    request.setAttribute("errorMessage", "保存目录信息时出错,错误位置:01。");
}

return mapping.findForward("createFailed");

最后还有个简单的问题
<html:form action="/category">
    <p>目录名: <html:text property="catName" />
    <html:errors property="catName" /></p>
      ...
</html:form>
  • 我用的是struts1.3,怎么从action里或其它地方给他传值呢?
meiking   2008-05-11 01:49:05 评论:1   阅读:53   引用:0
@2008-05-11 02:04:13  hofman
   一、中文问题:jdbc:mysql://localhost:3306/yourdb?useUnicode=true&characterEncoding=UTF-8
二、hibernate,用spring+hibernate,一些常规的小问题就不存在了。
三、扔掉struts1.3,直接用struts 2.不要在已经淘汰的框架上浪费时间。

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2008 powered by YuLog