保存并检索通过数据库中的jsp给出的多个值

时间:2014-05-19 07:51:56

标签: java mysql jsp jdbc

我有一个jsp页面,我使用多个选项选择值并发送到servlet并尝试存储到数据库中我通过多个选项选择了两个值,错误就像这样.Net                核心Java,  java.lang.ArrayIndexOutOfBoundsException:2  ,这是我的jsp代码

                    <tr>
  <td><label>Skills </label>&nbsp;</td>
  <td><select name="skills" size="5" multiple="multiple" tabindex="1">
    <option value="Android">Android</option>
    <option value=".Net">.Net</option>
    <option value="Core Java">Core Java</option>
    <option value="Advance Java">Advance Java</option>
    <option value="Database">Database</option>
    <option value="MySQL">MySQL</option>
    <option value="Html/CSS">Html/CSS</option>
    <option value="PHP">PHP</option>
    <option value="TESTING">TESTING</option>
    <option value="Networking">Networking</option>

  </select>
  </td>
</tr>

之后我在servlet中检索这样的值..

 String[] skills   =request.getParameterValues("skills");
    for(p=0;p<skills.length;p++)
    {

    System.out.println(skills[p]);
    }

现在像这样存储到数据库....

  int i = st.executeUpdate("insert into empinfo(skills) values (+skills[p] + "')");
    if (i > 0) {

  }

请帮助我这里的任何人如何使用jsp和servlet存储和检索

这是我的表格结构。

  CREATE TABLE IF NOT EXISTS `empinfo` (
     `eid` varchar(255) NOT NULL,
    `name` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `sex` varchar(50) NOT NULL,
   `dob` varchar(255) DEFAULT NULL,
  `bloodgroup` varchar(255) DEFAULT NULL,
  `fathername` varchar(300) DEFAULT NULL,
 `qualification` varchar(255) DEFAULT NULL,
 `mailid` varchar(400) DEFAULT NULL,
 `contactnum` varchar(200) DEFAULT NULL,
 `skills` varchar(1250) NOT NULL,
`temporaryadd` varchar(600) DEFAULT NULL,
`permanentadd` varchar(600) DEFAULT NULL,
`access_type` varchar(150) DEFAULT NULL,
 PRIMARY KEY (`eid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

2 个答案:

答案 0 :(得分:1)

  String[] skills   =request.getParameterValues("skills");
  String value="";
            for(p=0;p<skills.length;p++)
            {
                value += skills[p]+",";
            }
int i = st.executeUpdate("insert into empinfo(skills) values (+value+ "')");

答案 1 :(得分:0)

尝试使用预备语句。

PreparedStatement pstmt = conn.prepareStatement("INSERT INTO TABLE(stringArray) VALUES    (?)");    
Array a = conn.createArrayOf("skills", arr);
pstmt.setArray(1, arr);

希望这有帮助