簡體   English   中英

如何使用ibatis將類型為java.util.Set的數據插入到我的sql數據庫中?

[英]How to insert data of type java.util.Set into my sql database with column of type set using ibatis?

如何將類型java.util.Set的數據插入類型為set(mysql set type)的mysql db列中?

我的POJO:

public class UserTEO 
{
    private Integer id;
    private Set changedfieldset;
    //getters and setters
}

xml文件:

<sqlMap namespace="user"> 

    <typeAlias alias="USER" type="com.howtodoinjava.ibatis.demo.dto.UserTEO" />
    <insert id="addUser" parameterClass="USER">
        INSERT INTO USERINFO (ID,CHANGEDFIELDSET)
         VALUES(#id#,#changedfieldset#);
    </insert>
</sqlMap>

數據庫:

CREATE TABLE USERINFO
(
    ID INT,
    CHANGEDFIELDSET SET('')
);

例外情況:

com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in user.xml.  
--- The error occurred while applying a parameter map.  
--- Check the user.addUser-InlineParameterMap.  
--- Check the parameter mapping for the 'changedfieldset' property. 

請幫忙。 謝謝 !

我猜您明確地想使用(舊)ibatis,而不是Mybatis。 這是我參考的文檔

Mysql SET期望使用逗號分隔且不帶空格的設置值字符串: StringUtils.join(set, ",") 因此,您必須使用類型處理程序將java Set轉換為以下字符串:Extend BaseTypeHandler ,特別是覆蓋setParameter方法。

然后調用如下:

INSERT INTO USERINFO (ID,CHANGEDFIELDSET)
         VALUES(#id#,#changedfieldset,handler=YourCustomTypeHandlerTypeAlias#)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM