In my java servlet application!
我正在获取复选框选中的值 使用
以String []的形式String[] skills = request.getParameterValues("skills");
现在我必须将此string []技能组值存储到oracle db中! 我有2个小解决方案 1)我将通过追加(,)或(/)将该字符串数组转换为1个字符串。 然后我将它存储在db(技能VARCHAR(1000))列中。 在db列中采用这样的大小并不是一个好习惯。 2)我有一个计划! 我将所有复选框名称作为db中的列(C Boolean,C ++ boolean,Java boolean .....)。 然后在创建表时我会将所有默认值设为false。 当选中perticuler复选框时,我将在db中插入值true,例如,如果用户选择复选框java,那么我将插入db true作为它的值。
“这看起来非常复杂” 从我的角度来看,这两个选项很棘手,但不是企业标准使用! 有没有办法将String数组存储在db中,而不是像这些stuppid技巧???
db中是否有任何数据类型使用我们的String [] 并返回我们的字符串[] ??
如果有的话? 请给我详细的步骤!!
提前致谢!
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.
使用上面的...我创建了一个类似于数组的多个值的类型。 但是当我创建一个语句并从寄存器执行selec *时,在我的servlet中 查询然后我会得到 ResultSet obj! 但是我怎么能将那个smoketype数组检索到String []中呢? 我怎么能检索字符串[]值? 请有人帮帮我吗?
答案 0 :(得分:0)
字符串数组中的每个值都是实际字符串,还是只是某种标志?真/假等
如果它只是一个标志,你可以将它存储为掩码,每个位对应一些特定的复选框,
例如,如果您有3个复选框x,y,z,其值为true / false,则可以将掩码设为3位,例如101(deonoting x = 1,y = 0,z = 1)。 / p>
这不是最具描述性的存储方式,因为你必须跟踪实际的掩码意味着什么,但它比连接数组的每个值节省更多空间