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

发布于 2024-10-04 18:10:47 字数 357 浏览 3 评论 0原文

我正在寻找以下情况的解决方案。假设我有一个业务对象 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 映射文件中表达此功能?

I'm looking for solution of the following situation. Let's say I have a business object Vector referencing class/structure Point.

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

class Point {
 int x;
 int y;
}

What I want to do is to save the begin and end to the same table as the vector itself.

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

I know this from the Hibernate world as Component Mapping, but I was unable to find similar concept for iBatis. Is there a way to express this functionality in iBatis mapping files?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温折酒 2024-10-11 18:10:47

在您的 DAO 中,假设您将

    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);
    }

在映射文件中的对象上使用 (g/s)etters

    <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>

In your DAO, assume that you will be using (g/s)etters on objects

    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);
    }

In mapping file

    <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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文