回覆列表
-
1 # 用Java打醬油
-
2 # 大劉哥聊技術
我叫souvc,在網際網路公司做研發工作,看到題目,感覺挺熟悉的,因為曾經也遇到過這個問題,那麼下面我來講講Mybatis如何更新Blog欄位吧。
簡單原理由於並沒有在更新的時候,並沒有把相應的值設定進去,導致更新不成功!下面一起來看看示例。
簡單需求設計一個簡單的部落格,建立文章的資料庫表,並插入到表中。然後更新相應的欄位。
在Mysql資料庫中建立一張表如圖:
資料庫表為以及資料為:
新建一個Maven的Java專案新建一個名稱叫做:w4j-mybatis-post 的專案。
引入Jar包依賴引入Mybatis和Mysql資料驅動類依賴,測試類
新建實體類根據資料庫新建實體類Posts
新建介面和對映類新建介面PostMapper類以及PostMapper對應的xml檔案
PostMapper介面
PostMapper.xml檔案裡面的內容
insert插入方法和update更新方法
新建Mybatis配置檔案mybatis-config.xml
新建測試配置類獲取Sqlssion和關閉
新建測試方法1.首先插入一條新的資料。並且透過updateByPrimaryKey進行更新,發現並沒有更新到資料庫。
2.使用updateByPrimaryKeyWithBLOBs更新即可更新到資料庫。
效果我們設定的值更新了。
小結倆者的區別,就是在XML裡面沒有寫相應的更新欄位,當Mybatis生成sql的時候並沒有設定需要更新的欄位值進去而導致更新不成功!
先來乾貨,在mapper.xml中配置jdbcType=LONGVARBINARY即可。
詳情如下:
userMapper.xml
car.java
CarServiceImpl.java
CarMapper.java
執行結果
資料庫
上述示例在以下環境下測試透過:
<spring.version>4.3.10.RELEASE</spring.version>
<mybatis.version>3.4.4</mybatis.version>
<mybatis-spring.version>1.3.1</mybatis-spring.version>