【发布时间】:2012-10-09 07:47:59
【问题描述】:
In my java servlet application!
我正在获取复选框选择的值 通过使用
以 String[] 的形式String[] skills = request.getParameterValues("skills");
现在我必须将此字符串 [] 技能组值存储到 oracle db 中! 我有 2 个小解决方案 1) 我将通过附加 (,) 或 (/) 将该字符串数组转换为 1 个字符串。 然后我将其存储在 db (skill VARCHAR(1000)) 列中。 在 db 列中采用这样的大小并不是一个好习惯。 2)我有一个计划! 我会将所有复选框名称作为 db 中的列,例如(C 布尔值、C++ 布尔值、Java 布尔值.....)。 然后在创建表时,我会将它们的所有默认值设为 false。 检查erticuler复选框后,我会将值True插入DB中,例如,如果用户选择CheckBox Java,那么我将在DB中插入到它的值。
“这看起来很复杂的过程” 从我的角度来看,这两个选项很棘手,但不是企业标准使用! 除了像这些愚蠢的技巧之外,还有什么方法可以将字符串数组存储在数据库中???
db 中是否有任何使用我们的 String[] 的数据类型 并返回我们的字符串[] ??
如果有的话? 请提供详细步骤!!
提前致谢!
最近我找到了一个解决方案: VARRAY in oracle db =>
SQL> CREATE OR REPLACE TYPE smoketype IS VARRAY(3) OF VARCHAR(30)
2 /
Type created.
SQL> CREATE TABLE register (fname VARCHAR(30), lname VARCHAR(30), gender VARCHAR
(1), smoke SMOKETYPE);
Table created.
SQL> INSERT INTO register VALUES
2 (
3 'omkar','t','m',
4 smoketype('no')
5 );
1 row created.
SQL> INSERT INTO register VALUES
2 (
3 'om','T','m',
4 smoketype('no','not at all')
5 );
1 row created.
SQL> INSERT INTO register VALUES
2 (
3 'onky','T','m',
4 smoketype('no','never','not at all')
5 );
1 row created.
通过上述.. 我创建了一个像数组一样接受多个值的类型。 但是在我的 servlet 中,当我创建一个语句并从寄存器执行一个选择 * 查询然后我会得到 结果集对象! 但是我怎样才能将该smoketype数组检索到String []中呢? 我怎样才能检索字符串 [] 值? 有人帮帮我吗?
【问题讨论】: