【发布时间】:2019-03-31 19:05:25
【问题描述】:
我的数据库:MYSQL SCREENSHOT
我已将 HTML 中的值插入 MySQL 数据库。如何使用自动增量列的插入命令?
Servlet 代码:
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.sql.*;
@WebServlet(name = "Register")
public class Register extends HttpServlet {
static String username="root";
static String password="root";
static String dburl= "jdbc:mysql://localhost:3306/conferencesystem";
static String mydriver = "com.mysql.cj.jdbc.Driver";
protected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String Firstname = request.getParameter("firstname");
String Lastname = request.getParameter("lastname");
int Mobilenumber =
Integer.parseInt(request.getParameter("mobilenumber"));
String Email = request.getParameter("emailid");
String Pass = request.getParameter("password");
out.println("<html>");
out.println("<body>");
out.println("<h3>Guest Details </h3>");
out.println("" + Firstname);
out.println("" + Lastname);
out.println("" + Email);
out.println("</body>");
out.println("</html>");
int id = 1101;
Connection con = null;
try {
Class.forName(mydriver);
con = DriverManager.getConnection(dburl, username, password);
String query = "INSERT INTO author values(?,?,?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(query);
stmt.setInt(1,id);
stmt.setString(2,Firstname);
stmt.setString(3,Lastname);
stmt.setInt(4,Mobilenumber);
stmt.setString(5,Email);
stmt.setString(6,Pass);
out.println("Your Record has been successfully inserted");
int res= stmt.executeUpdate();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
h3{
font-family: Calibri;
font-size: 25pt;
font-style: normal;
font-weight: bold;
color:SlateBlue;
text-align: center;
text-decoration: underline
}
table{
font-family: Calibri;
color:white;
font-size: 11pt;
font-style: normal;
font-weight: bold;
text-align:center;
background-color: SlateBlue;
border-collapse: collapse;
border: 2px solid navy
}
table.inner{
border: 0px
}
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<html>
<head>
<title> Author Registration Form </title>
</head>
<link rel="stylesheet" href="styles.css">
<body>
<form method="post" action="http://localhost:8080/Register">
<h3>AUTHOR REGISTRATION FORM</h3>
<table align="center" cellpadding = "10">
<!----- First Name ---------------------------------------------------------->
<tr>
<td>FIRST NAME</td>
<td><input type="text" name="firstname" maxlength="30"/>
(max 30 characters a-z and A-Z)
</td>
</tr>
<!----- Last Name ---------------------------------------------------------->
<tr>
<td>LAST NAME</td>
<td><input type="text" name="lastname" maxlength="30"/>
(max 30 characters a-z and A-Z)
</td>
</tr>
<!----- Mobile Number ---------------------------------------------------------->
<tr>
<td>MOBILE NUMBER</td>
<td>
<input type="text" name="mobilenumber" maxlength="10" />
(10 digit number)
</td>
</tr>
<!----- Email Id ---------------------------------------------------------->
<tr>
<td>EMAIL ID</td>
<td><input type="text" name="emailid" maxlength="100" /></td>
</tr>
<!----- Choose password ---------------------------------------------------------->
<tr>
<td>PASSWORD</td>
<td><input type="password" name="password" maxlength="100" /></td>
</tr>
<!----- Submit and Reset ------------------------------------------------->
<tr>
<td colspan="2" align="center">
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</td>
</tr>
</table>
</form>
</body>
</html>
我正在尝试从表单数据中插入数据,但它不起作用。我该如何解决?
在这个更新后的问题中,我已经成功解决了插入值的一些问题,但是如何处理自动递增列?
【问题讨论】:
-
你为什么对我们大喊大叫?找到您的大写锁定键并将其关闭,然后重试。
-
对不起,我不是那个意思
-
请将您的问题简化为minimal reproducible example 并将异常作为文本发布在您的问题中。不要将重要的文本信息作为图像发布。但是给你一个提示:你的插入语句不正确,请阅读关于 JDBC 的基本教程,特别是关于如何将值传递给语句的准备语句。
-
@MarkRotteveel 谢谢,我已经修复了现在我有问题来处理自动递增列值
-
@MarkRotteveel 请建议