它看起來像我必須爲DateTime和LocalDateTime Joda類型實現com.ibatis.sqlmap.client.extensions.TypeHandlerCallback。這不是什麼大問題,但如果它在別的地方實施,我寧願只是使用它。Joda Time/iBATIS集成類是否存在一個庫?
1
A
回答
1
IMO沒有清潔靈活的解決方案。 Jodatime日期比JDBC本機類型(java.sql.Date
,java.sql.Timestamp
...)更靈活,如果映射到它們,則可能會丟失信息(時區)。一個「完整的」實現(可能繞過getDate()
/getTimestamp()
等JDBC方法,例如使用字符串)將取決於您的JDBC驅動程序和數據庫(實際上沒有數據庫具有與Jodatime相同的日期時間類型)。
這是我爲LocalDateTime
做過的一個相當簡單的實現。沒有經過很好的測試,並且它假定您的數據庫時間戳代表本地日期時間。
public Object getResult(ResultGetter getter) throws SQLException {
Timestamp date = getter.getTimestamp();
if(date == null) return null;
LocalDateTime ldt = null;
try {
ldt = LocalDateTime.fromDateFields(date);
} catch(IllegalArgumentException e) {
throw new SQLException("illegal value for a LocalDateTime : " + date);
}
return ldt;
}
public void setParameter(ParameterSetter setter, Object parameter) throws SQLException {
java.sql.Timestamp date = null;
if(parameter != null) {
LocalDateTime ldt = (LocalDateTime) parameter;
date = new Timestamp(ldt.toDateTime().getMillis());
}
setter.setTimestamp(date);
}
0
我會把它放在那裏......我們只是移動了我們的代碼來爲iBatis和myBatis這樣做。正如大家所提到的,由於java.sql包中的限制,時區不適合使用。然而,可以通過適當的設置至少與LOCALDATE的和DateTime
請給予反饋!這個套餐是早期的
相關問題
- 1. Objective-Java集成庫是否存在?
- 2. 是否存在與Splunk的fogbugz集成,類似於Jira集成?
- 3. CodeNarc - 確定一個類是否是Grails集成測試
- 4. Joda-Time DateTimeFormatter類是否線程安全?
- 5. 檢查一個類是否存在
- 6. 檢查一個集合中是否存在一個對象(T)
- 7. 判斷一個對象是否存在於一個集合中
- 8. NUnit聲明一個集合,檢查是否存在一個值
- 9. 是否有一個Java庫可以完成php date_modify的功能?
- 10. 可以檢查一個集合或子集合是否存在?
- 11. 集成測試存儲庫類
- 12. Jooq是否支持Joda-Time?
- 13. 是否有一個用於生成具體CLR類的IronRuby庫?
- 14. 是否有一個Java庫從AST生成類文件?
- 15. 在intellij中,一個項目是否構成一個類路徑?
- 16. 檢查一個數據庫中是否存在一個ID
- 17. 將Rich Calendar與Joda時間集成
- 18. 在VB.Net中集成一個QRCode庫
- 19. 檢查一個頁面上是否存在一個類
- 20. 找出一個方法是否存在於一個靜態類
- 21. 集成eBay和PayPal庫存
- 22. 如何檢查一個集合是否已經存在於ArangoDB
- 23. Magento測試是否存在一個產品集合
- 24. 是否存在一個硒2.0擴展集合?
- 25. Node.js - Mongoose - 檢查一個集合是否存在
- 26. 檢查是否在一個jQuery集合
- 27. 行是否存在是另一個表?
- 28. 是否有一個用於可移植類庫的內存緩存?
- 29. JME是否存在LDAP庫?
- 30. 是否有一個pymongo(或另一個Python庫)批量保存?
剛注意到我遲到了派對:https://github.com/LukeL99/joda-time-mybatis – 2012-03-27 23:25:00