使用iBatis将属性存储到多个列

时间:2010-11-26 14:37:58

标签: ibatis

我正在寻找以下情况的解决方案。假设我有一个业务对象Vector引用类/结构Point。

class Vector{
 int id;
 Point begin;
 Point end;
}

class Point {
 int x;
 int y;
}

我想要做的是将开头和结尾保存到与向量本身相同的表中。

table Vectors {
 int id;
 int begin_x;
 int begin_y;
 int end_x;
 int end_y;
}

我从Hibernate世界知道这是组件映射,但我无法找到类似iBatis的概念。有没有办法在iBatis映射文件中表达此功能?

1 个答案:

答案 0 :(得分:0)

在你的DAO中,假设你将在对象上使用(g / s)etters

    public void saveVector(Vector v) throws DataAccessException
    {
        Map params = new HashMap();
        params.put("id",new Integer(v.id);
        params.put("begin_x",new Integer(v.begin.x);
        params.put("begin_y",new Integer(v.begin.y);
        params.put("end_x",new Integer(v.end.x);
        params.put("end_y",new Integer(v.end.y);
        getSqlMapClientTemplate().insert("Vectors.insertVectors", params);
    }

在映射文件

    <insert id="insertVectors" parameterClass="java.util.Map">
        INSERT INTO
        Vectors(id,begin_x,begin_y,end_x,end_y)
        VALUES
        (#id#,#begin_x#,#begin_y#,#end_x#,#end_y#)
    </insert>