我有一个问题
Tecno 的标签是:java,php,javascript
我的 Recoge_datos.jsp
String[] tecno=request.getParameterValues("tecno");
try{
java.sql.Connection miConexion=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/proyecto_jsp","root","");
java.sql.Statement miStatement=miConexion.createStatement();
String instruccionSql="INSERT INTO USERS (nombre, apellido, usuario, contra, pais, tecno) VAlUES ('" + nombre + "','" + apellido +"','"+ usuario +"','"+ contra +"','" + pais +"','" + tecno + "')";
miStatement.executeUpdate(instruccionSql);
out.println(" Registrado con exito ");
}catch(Exception e){
out.println("Ha habido un error");
}
和我的 Formulario_registro.html
<form action="Recoge_datos.jsp" method="post">
<tr>
<td>Tecnologias: </td>
<td><label>
<input type="checkbox" name="tecno" value="Java" id="tecnologias_0">
Java</label>
<br>
<label>
<input type="checkbox" name="tecno" value="PHP" id="tecnologias_1">
Php</label>
<br>
<label>
<input type="checkbox" name="tecno" value="JavaScript" id="tecnologias_2">
JavaScript</label></td>
</tr>
在 MySQL 中我有这个:
[Ljava.lang.String;@6ecf7e94<br>
但是如果选择的话应该是java,javascript,php
我使用的是最新版本的java和tomcat 9,全部是最新版本02/2017
最佳答案
我认为您打算将数组作为字符串插入。如果是这样,您需要将数组转换为正确的字符串。您可以在 Java 8 中使用 String.join()
,
String tecnoStr = String.join(",", tecno);
有关执行此操作的更多选项,请参阅:
此外,始终使用参数化语句 PreparedStatement
。您的代码目前容易受到 SQL 注入(inject)攻击。
String instruccionSql = "INSERT INTO USERS (nombre, apellido, usuario, contra, pais, tecno) VAlUES (?,?,?,?,?,?)";
PreparedStatement ps = miConexion.prepareStatement(instruccionSql);
ps.setString(1, nombre);
ps.setString(2, apellido);
ps.setString(3, usuario);
ps.setString(4, contra);
ps.setString(5, pais);
ps.setString(6, tecnoStr);
ps.executeUpdate();
此外,请记住关闭连接,最后的语句(为了简洁起见,保留在此处)。
关于java - 如何使用jsp和mysql向单个帖子添加多个标签(数组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42465092/