1. 程式人生 > >mybatis向mysql插入datetime和date的區別

mybatis向mysql插入datetime和date的區別

MyBatis3做資料持久層,在欄位中有Date和DateTime型別,在插入資料時只要將實體的屬性設定成Timestamp就會對應mysql的DateTime型別,Date會對應mysql的Date型別。

在MyBatis對映檔案中要表明對映型別。

[html] view plain copy  print?
  1. <resultcolumn="modified_date"jdbcType="TIMESTAMP"property="modifiedDate"javaType="java.sql.Timestamp"/>
  2. <resultcolumn="create_date"
    jdbcType="DATE"property="createDate"javaType="java.util.Date"/>
  3. <resultcolumn="date"jdbcType="TIMESTAMP"property="date"javaType="java.util.Date"/>


在插入語句的那個mybatis XML檔案在使用欄位的時候也要標明型別,注意得用#{},別用${}

#{modifiedDate, jdbcType=TIMESTAMP}

#{createDate, jdbcType=DATE}。

另外,如果從JAVA程式碼中傳過來的引數是是字串型別的,如: “2016/11/16 10:26:17“,

如何將這個字串轉換為date型別呢?因為mybatis接收引數也挺特殊的,一般格式為:#{param,jdbcType=VARCHAR}, 則要用下面的方法把它插入到mysql的datetime欄位中去。

1: 在Mybatis 引數傳配置 xml 檔案中insert語句中,用  to_date(#{CREATE_DATE}, 'YYYY/MM/DD HH24:mi:ss' )即可。

當然 插入到資料中的這個欄位也要是date型別。