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

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

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

    First they ignore you
    then they ridicule you
    then they fight you
    then you win
        -- Mahatma Gandhi
    Chinese => English     英文 => 中文             
    隨筆-221  評論-1047  文章-0  trackbacks-0
    想用Grails這個東西生成指定為DECIMAL類型(NUMERIC類型)的字段,并控制精度, 搞了一下午未果, 于是請教山風小子, 最終兩個人試驗N次, 失敗N-1次的前提下, 最后一次終于成功了, 在這里尤其感謝山風的技術支持以及精神支持;

    成功案例記錄在這里:
    groovy(domain-class):
    class Oldtable {
    static withTable = "oldtable"
    ??? Integer id
    ??? BigDecimal? number //要為BigDecimal類型
    ??? static constraints = {
    ???????????? // 山風小子注:正確的約束應該為number(max:new BigDecimal("9999.999999"), scale:6)
    ??? ??? ??? ?number(max:1000, scale:6)??? //這個限制搞了很久才搞出來, 映射為DECIMAL(10,6)
    ??? ??? ??? }
    }
    DataSource:
    class DevelopmentDataSource {
    ?? boolean pooling = true
    ??? String dbCreate = "update" // one of 'create', 'create-drop','update'
    ??? String url = "jdbc:mysql://localhost:3306/grails"
    ??? String driverClassName = "com.mysql.jdbc.Driver"
    ??? String username = "ymiao"
    ??? String password = "letmein"
    }

    PS:
    1. 最大的感觸是: 一定要練好英語
    2. mysql里面NUMERIC類型會自動轉換為DECIMAL類型, 比如用GUI工具建表指定為NUMERIC(10,6), 會自動轉換為DECIMAL(10,6),表示最高有效數字10位, 小數點后保留6位; 這里的precision="10" scale="6", 注意數據庫里的precision是有效數字, scale表示精確到小數點后的位數
    // 山風小子注:number(max:new BigDecimal("9999.999999"), scale:6),4(小數點左側位數) + 6(scale) = 10(precision) => DECIMAL(10, 6)
    3. number(max:1000, scale:6) 這個精度限制這么寫的原因一直搞不懂, 跟山風試驗了好多次才成功的, 最后理解為1000是4位, 4+6=10, precision="10", 同理max:10000, scale:6會生成DECIMAL(11,6)類型的字段, 暫且這么理解吧...
    4. String dbCreate = "update", 這里用update, 如果數據庫中有對應的表, 則用舊表, 不會覆蓋舊表以及里面的數據
    5. mysql數據庫中
    DECIMAL(10,6)類型的數據, 通過hibernate逆向映射生成的屬性是:
    ??????? <property name="number" type="java.lang.Double">
    ??????????? <column name="number" precision="10" scale="6" not-null="true" />
    ??????? </property>
    但是在groovy里面定義為Double類型出現N多異常, 最終定義為BigDecimal類型的成功;
    6. 貼出常見類型的映射關系
    Hibernate映射類型 Java類型 標準SQL類型
    integer/int java.lang.Integer/int INTEGER 4字節
    long java.lang.Long/long BIGINT 8字節
    short java.lang.Short/short SMALLINT 2字節
    byte java.lang.Byte/byte TINYINT 1字節
    float java.lang.Float/float FLOAT 4字節
    double java.lang.Double/double DOUBLE 8字節
    big_decimal java.math.BigDecimal NUMERIC
    character java.lang.Character/java.lang.String/char CHAR(1) 定長字符
    string java.lang.String VARCHAR 變長字符
    boolean/ yes_no/true_false java.lang.Boolean/Boolean BIT 布爾類型
    date java.util.Date/java.sql.Date DATE 日期
    timestamp java.util.Date/java.util.Timestamp TIMESTAMP 日期
    calendar java.util.Calendar TIMESTAMP 日期
    calendar_date java.util.Calendar DATE 日期
    binary byte[] BLOB
    BLOB
    text java.lang.String TEXT CLOB
    serializable 實現java.io.Serializablej接口的任意Java類 BLOB BLOB
    clob java.sql.Clob CLOB CLOB
    blob java.sql.Blob BLOB BLOB
    class java.lang.Class VARCHAR 定長字符
    locale java.util.Locale VARCHAR 定長字符
    timezone java.util.TimeZone VARCHAR 定長字符
    currency java.util.Currency VARCHAR 定長字符
    7. 用于測試的mysql的schema+table
    DROP TABLE IF EXISTS `grails`.`oldtable`;
    CREATE TABLE? `grails`.`oldtable` (
    ? `id` int(11) NOT NULL,
    ? `number` decimal(10,6) NOT NULL,
    ? PRIMARY KEY? (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    8. Hibernate相關
    http://docs.huihoo.com/framework/hibernate/reference-v3_zh-cn/toolsetguide.html
    http://www.itpub.net/699923.html

    // 山風小子注:成功其實就在你眼前,關鍵要看自己的恒心和毅力

    原文地址:http://miaoyachun.blog.sohu.com/43152463.html
    附:Groovy與Grails同甘共苦,苦盡甘來
    posted on 2007-04-23 00:36 山風小子 閱讀(3419) 評論(6)  編輯  收藏 所屬分類: Groovy & Grails
    主站蜘蛛池模板: a级毛片免费全部播放无码| 农村寡妇一级毛片免费看视频| 青青操在线免费观看| 亚洲国产天堂久久综合| 免费国产va在线观看| 免费在线观看你懂的| 美女被爆羞羞网站免费| 亚洲国产中文字幕在线观看| 免费无码婬片aaa直播表情| 亚洲精品无码久久久| a级大片免费观看| 国产亚洲欧洲精品| 最近中文字幕免费完整| 久久久久精品国产亚洲AV无码| 中文字幕无码不卡免费视频 | 久久久久亚洲av无码专区蜜芽| 中文字幕久无码免费久久| 久久亚洲国产精品一区二区| 色欲色香天天天综合网站免费| 亚洲妇女水蜜桃av网网站| 免费无码又爽又刺激毛片| 色一情一乱一伦一视频免费看| 中文字幕亚洲日本岛国片| 99在线观看免费视频| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 亚洲日韩精品无码AV海量| 国产人妖ts在线观看免费视频| a毛片成人免费全部播放| 亚洲av午夜福利精品一区人妖| 亚洲网站在线免费观看| 亚洲精品中文字幕| 亚洲伊人色欲综合网| 99久久精品日本一区二区免费| 国产精品亚洲天堂| 亚洲高清在线视频| 在线播放高清国语自产拍免费| igao激情在线视频免费| 亚洲欧洲春色校园另类小说| 国产免费av片在线无码免费看| 国产成人久久AV免费| 亚洲av无码专区青青草原|