iBATIS 2 中的数组索引寻址

发布于 2024-12-09 10:08:37 字数 394 浏览 3 评论 0原文

可以通过 sqlmap 中的索引来寻址数组吗?

我想要的是:

class A {
  String[] foo = {"",""};
}

<resultMap id="someResultMap" class="A">
    <result property="foo[0]" column="COLUMN_Y" />
    <result property="foo[1]" column="COLUMN_X" />
</resultMap>

如果我尝试我会得到:

There is no WRITEABLE property named 'foo[0]' in class 'A'

It's possibile to adress an array by index in a sqlmap?

What I want is:

class A {
  String[] foo = {"",""};
}

<resultMap id="someResultMap" class="A">
    <result property="foo[0]" column="COLUMN_Y" />
    <result property="foo[1]" column="COLUMN_X" />
</resultMap>

If I try I get:

There is no WRITEABLE property named 'foo[0]' in class 'A'

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

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

发布评论

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

评论(1

真心难拥有 2024-12-16 10:08:37

不可能通过 sqlmap 中的索引将值设置为数组,因为 iBatis 使用 setter 来写入值。您应该为您的属性设置 setter 以便在 sql 映射中使用它。

我建议在您的班级中为 coulumnX 和 columnY 创建属性。如果您仍然希望在类中使用数组,您可以在类中进行一些处理,如下所示。

class A {
String[] foo = {"",""};
String col1;
String col2;
//have getter and setter for col1 and col2

getFoo(){
foo[1] = getCol1();
foo[2] = getCol2();
return foo;
}

}

<resultMap id="someResultMap" class="A">
<result property="col1" column="COLUMN_Y" />
<result property="col2" column="COLUMN_X" />
</resultMap>

It's not possible to set value to an array by index in a sqlmap becuase iBatis uses setter to write the value. You should have setter for your property to use it in the sql map.

I would suggest to create property in your class for coulumnX and columnY. If you still want array to be used in the class, you can do some work around in your class like below.

class A {
String[] foo = {"",""};
String col1;
String col2;
//have getter and setter for col1 and col2

getFoo(){
foo[1] = getCol1();
foo[2] = getCol2();
return foo;
}

}

<resultMap id="someResultMap" class="A">
<result property="col1" column="COLUMN_Y" />
<result property="col2" column="COLUMN_X" />
</resultMap>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文