<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每日一得

    不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
    最近關(guān)心的內(nèi)容:SSH,seam,flex,敏捷,TDD
    本站的官方站點(diǎn)是:顛覆軟件

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
    keyword:MySql字段,Hibernate session

    一.MySql字段敏感

    這幾天怪問題真是不少,這不剛建的一個(gè)數(shù)據(jù)庫的表用MiddleGen批量生成hbm.xml文件居然和數(shù)據(jù)庫的數(shù)據(jù)類型不一致.
    MySql建表語句如下:
    drop table if exists book;

    /*==============================================================*/
    /* Table: book                                                  */
    /*==============================================================*/
    create table book
    (
       id                             
    int                            not null,
       name                           
    varchar(100),
       author                         
    varchar(100),
       date                           date,
       price                          
    int,
       
    primary key (id)
    )
    comment
    ="Book table"
    type 
    = InnoDB;

    生成的hbm.xml文件如下:

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" 
    >
        
    <hibernate-mapping>
    <!-- 
        Created by the Middlegen Hibernate plugin 2.1

        http://boss.bekk.no/boss/middlegen/
        http://www.hibernate.org/
    -->

    <class 
        
    name="net.foxlog.prj.Book" 
        table
    ="book"
    >
        
    <meta attribute="class-description" inherit="false">
           @hibernate.class
            table="book"
        
    </meta>

        
    <id
            
    name="id"
            type
    ="java.lang.Long"
            column
    ="id"
        
    >
            
    <meta attribute="field-description">
               @hibernate.id
                generator-class="assigned"
                type="java.lang.Long"
                column="id"


            
    </meta>
            
    <generator class="assigned" />
        
    </id>

        
    <property
            
    name="name"
            type
    ="java.lang.String"
            column
    ="name"
            length
    ="100"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="name"
                length="100"
            
    </meta>    
        
    </property>
        
    <property
            
    name="author"
            type
    ="java.lang.String"
            column
    ="author"
            length
    ="100"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="author"
                length="100"
            
    </meta>    
        
    </property>
        
    <property
            
    name="date"
            type
    ="java.sql.Date"
            column
    ="date"
            length
    ="10"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="date"
                length="10"
            
    </meta>    
        
    </property>
        
    <property
            
    name="price"
            type
    ="java.lang.String"
            column
    ="price"
            length
    ="10"
        
    >
            
    <meta attribute="field-description">
               @hibernate.property
                column="price"
                length="10"
            
    </meta>    
        
    </property>

        
    <!-- Associations -->
      

    </class>
    </hibernate-mapping>

    注意到?jīng)]有,id的類型變成了Long型了,而price居然變成了String了,暈啊.

    各位碰到過這個(gè)問題么?

    最后還是找到問題所在了,實(shí)際上是建表有問題,問題就出在字段的名稱上,把id改為ID,price改為PRICE就沒問題了!  MySql對id和price敏感? 不得而知,目前看來好像是這樣.只是提醒我以后建表養(yǎng)成一個(gè)習(xí)慣,都用大寫的就沒問題了.
    沒想到一次測試中隨便建的一個(gè)表發(fā)現(xiàn)了這么個(gè)有趣的事情  :)

    二.Hibernate的session關(guān)閉問題
    用hibernate的工具類獲得session有沒有碰到過session is closed的錯(cuò)誤提示? 我又幸運(yùn)的碰到這個(gè)問題了,呵呵,我怎么有那么多問題啊,暈了,我看來是問題先生了,我的一個(gè)同事上次也跟我說過這個(gè)事情,后來他沒有正面解決這個(gè),繞過去了,他用Spring去替自己解決了,呵呵,也夠狠的.不過問題實(shí)際上是獲得session的時(shí)候需要增加一個(gè)判斷. 即 session.isOpen() == false;
     
    DBUtil.java代碼如下:
    /**
         * 返回一個(gè)可用的數(shù)據(jù)庫Session連接
         * 
    @return Hibernate中對數(shù)據(jù)庫的Session連接
         * 
    @throws HibernateException
         
    */
        
    public static Session currentSession() throws HibernateException
        {
            Session s 
    = (Session) session.get();
            
    // Open a new Session, if this Thread has none yet
            if (null==|| s.isOpen()==false)//注意這里
            {
                s 
    = sessionFactory.openSession();
                session.set(s);
            }
            
    return s;
        }


    posted on 2006-02-24 00:25 Alex 閱讀(1376) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 中文字幕成人免费高清在线| 亚洲乱码日产一区三区| 国产啪精品视频网站免费尤物| 69式互添免费视频| 亚洲heyzo专区无码综合| 久久久久亚洲Av无码专| 亚洲一区AV无码少妇电影☆| 拔擦拔擦8x华人免费久久| 亚洲黄色免费网站| 日韩成人免费视频| 中文字幕免费在线视频| 免费大片av手机看片| 中文无码亚洲精品字幕| 亚洲福利一区二区精品秒拍| 亚洲国产精品无码专区影院| 亚洲国产综合精品中文字幕| 可以免费观看一级毛片黄a| 成人毛片免费观看视频大全| 美女被免费喷白浆视频| 18禁无遮挡无码国产免费网站| 亚洲avav天堂av在线网爱情| 7777久久亚洲中文字幕蜜桃| 在线精品亚洲一区二区三区| 日韩精品电影一区亚洲| 国产传媒在线观看视频免费观看| 99热在线日韩精品免费| 朝桐光亚洲专区在线中文字幕| 午夜亚洲AV日韩AV无码大全| 亚洲午夜无码久久久久| 亚洲一区二区三区AV无码| 中文字幕不卡亚洲| 成人午夜亚洲精品无码网站| 久久久久亚洲AV成人网人人网站| 免费国产黄网站在线观看可以下载| 中文字幕乱码亚洲无线三区| 亚洲天堂2016| 中文字幕亚洲情99在线| 亚洲欧美日韩自偷自拍| WWW国产亚洲精品久久麻豆| 亚洲国产一区二区三区在线观看| 久久精品亚洲综合专区|