Servlets 如何将字符串数组存储到数据库中?
我正在获取选中值的复选框 通过使用Servlets 如何将字符串数组存储到数据库中?,servlets,jdbc,oracle10g,Servlets,Jdbc,Oracle10g,我正在获取选中值的复选框 通过使用 In my java servlet application! 现在我必须将这个字符串[]skillset值存储到oracle数据库中! 我有两个小的解决方案 1) 我将通过附加(,)或(/)将该字符串数组转换为1个字符串。 然后我将把它存储在db(skillvarchar(1000))列中。 在db列中使用这样的大小不是一个好的做法。 2) 我有个计划! 我将把所有的复选框名称都作为DB类中的列(C布尔、C++ +布尔、java布尔……)。 然后在创建表时
In my java servlet application!
现在我必须将这个字符串[]skillset值存储到oracle数据库中!
我有两个小的解决方案
1) 我将通过附加(,)或(/)将该字符串数组转换为1个字符串。
然后我将把它存储在db(skillvarchar(1000))列中。
在db列中使用这样的大小不是一个好的做法。
2) 我有个计划!
我将把所有的复选框名称都作为DB类中的列(C布尔、C++ +布尔、java布尔……)。
然后在创建表时,我会将它们的所有默认值设置为false。
选中perticuller复选框后,我将在db中插入值true,例如,如果用户选中复选框java only,则我将在db true中插入值true
“这似乎是一个非常复杂的过程”
从我的角度来看,这两个选项很棘手,但不是企业标准的用法!
除了这些愚蠢的技巧之外,还有什么方法可以在db中存储字符串数组吗
数据库中是否有使用字符串[]的数据类型
还回我们的字符串[]
如果有的话?
请为我提供详细的步骤
提前谢谢
最近我发现了一个解决方案:oracle db=>
有了以上。。我创建了一个像数组一样接受多个值的类型。
但在我的servlet中,当我创建一条语句并从寄存器执行selec*时
那我就去
结果集obj!
但我如何将smoketype数组检索回字符串[]?
如何检索字符串[]值?
请有人帮帮我?字符串数组中的每个值都是实际的字符串,还是只是某种标志?真/假等 如果它只是一个标志,您可以将其存储为一个掩码,每个位对应于某个特定的复选框 例如,如果有3个复选框x、y、z,其值为真/假,则掩码可以是3位,例如101(x=1,y=0,z=1) 它不是存储它的最具描述性的方式,因为您必须跟踪掩码的实际含义,但它比仅串联数组的每个值节省更多空间
String[] skills = request.getParameterValues("skills");
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.