我正在尝试一个代码,我想创建一个表并将数据插入表中。 我想为只有那些用户使用复选框选择的字段创建表格和插入数据。 这是我的jsp代码:
<%@ page language="java" import="java.util.*"%>
<%@ page import="java.sql.*" %>
<%
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://";
Connection con = DriverManager.getConnection(url,"sa","SQL1423#3");
Statement st=null;
String select[] = (String[]) session.getAttribute("a");
String tblname=(String)session.getAttribute("tblname");
//out.println(tblname);
//String select[] = request.getParameterValues("id");
if (select != null && select.length != 0)
{
for (int i = 0; i < select.length; i++)
{
int ch=Integer.parseInt(select[i]);
//int counter=1;
//int ID=1;
switch(ch)
{
case 1 :
String idOne=request.getParameter("idOne");
//out.println(idOne);
String idOneIns="insert into "+tblname+" (ID) values(?)";
PreparedStatement pstmt = con.prepareStatement(idOneIns);
pstmt.setString(1, idOne);
//st=con.createStatement();
int valueTwo = pstmt.executeUpdate();
out.println("Inserted");
break;
case 2 :
String ser=request.getParameter("series");
String serIns="insert into "+tblname+" (SERIES) values(?)";
PreparedStatement pst = con.prepareStatement(serIns);
pst.setString(1, ser);
int value = pst.executeUpdate();
out.println("Inserted");
break;
case 3 :
String sym=request.getParameter("symbol");
String symIns="insert into "+tblname+" (SYMBOL) values(?)";
PreparedStatement pstm = con.prepareStatement(symIns);
pstm.setString(1, sym);
int valueOne = pstm.executeUpdate();
out.println("Inserted");
break;
}//switch
}//for
}//if
st.close();
con.close();
}//try
catch(Exception e)
{
out.println(e);
}
%>
此处数据已插入表格中。但如果我选中所有三个复选框,则数据将插入:
Id Series Symbol
1 null null
null a null
null null b
但我希望将数据插入:
Id Series Symbol
1 a b
我应该做些什么改变才能得到这个输出?
答案 0 :(得分:0)
您当前的代码循环遍历输入元素,并且对于每个元素,在数据库表中插入一个新行。您要做的是组装树值(从表单输入)并仅插入一行。 E.g。
INSERT INTO表(ID,SERIES,SYMBOL)VALUES(?,?,?)