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.