zoukankan      html  css  js  c++  java
  • hibernate 各种坑啊!

    今天用hibernate连数据库遇到了各种奇葩的问题。

    1.connect time out

    这是因为我是用了Middlegen工具 他默认是2.0版本要把左右的 .htm.xml和hibernate.cfg.xml上面版本号改为3.0

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

    明显可以感觉到3.0之后连接速度快了很多

    2.修改hibernate.cfg.xml的”dialect“默认的是org.net啥啥,修改正确的是

    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.username">root</property>
    <property name="connection.password">passw0rd</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/newsdb?useUnicode=true&amp;characterEncoding=UTF-8</property>
    <property name="show_sql">true</property>

    3.关于XX is not mapped的问题

    首先,检查对应的表的.htm.xml是否把class和包名关联独立。例如我的Newslist的bean 所对应的的配置文件是Newslist.htm.xml里面的配置应该是

    <class
    name="com.hibernate.beans.Newslist"
    table="newslist"
    >

    ps:对于主键要把htm.xml的自增方式改为native: <generator class="native" />

    第二步,检查hibernate.cfg.xml中是否map对了路径,

    <mapping resource="com/hibernate/beans/Newslist.hbm.xml" />

    第三步,检查在applicationContext.xml是否配置了相应的DAO和service

    <!-- 配置DAO -->
    <bean id="newslistDAO"
    class="com.hibernate.dao.NewslistDAOImpl">
    </bean>

    <!-- 配置Service -->
    <bean id="newslistService"
    class="com.hibernate.service.NewslistServiceImpl">
    <property name="newslistDAO">
    <ref local="newslistDAO" />
    </property>
    </bean>

    第四步,一定要记住无论是用hql查询还是Criteria映射的都是类名而不是数据库里的表名

    我的表在数据库里是newslist 所对应的javabean的类名是Newslist

    所以如果用hql就应该是:

    String hql="from Newslist as newslist ORDER BY newslist.id DESC";
    Query query = session.createQuery(hql);

    如果用Criteria应该是:

    Criteria criteria=session.createCriteria(Newslist.class);

    OK!搞定!终于正确查询了!java的配置真是搞死人啊!

  • 相关阅读:
    Android开发需要注意的地方
    Android开发 --微信支付开发(转载!)(开发工具:Eclipse)
    Android开发---支付宝功能接口(支付功能)(转载!)
    Android开发--推送
    ASP.NET如何发布更新
    如何用visual studio控件(repeater)绑定数据库(SQL server)信息并显示
    SQL Server 的远程连接(转载)
    设置如何自动备份数据库并删除2周前的自动备份数据
    如何禁止网页内容被复制以及如何解除禁止(转载并更新!)
    条码生成
  • 原文地址:https://www.cnblogs.com/doublesong/p/2977944.html
Copyright © 2011-2022 走看看