Java 使用jsp、bean类和servlet在MySQL数据库中插入时间和日期
我想在数据库表中插入日期和时间。我在insertdao.java中遇到错误,因为不兼容的类型timestamp无法转换为时间。 我的MySQL数据库中有一个dttable,其列名和数据类型为Logindate日期、Logintime时间戳、LogoutTime时间戳 在index.jsp中,我们必须在Logindate、Logintime、LogoutTime中插入值Java 使用jsp、bean类和servlet在MySQL数据库中插入时间和日期,java,mysql,jsp,servlets,Java,Mysql,Jsp,Servlets,我想在数据库表中插入日期和时间。我在insertdao.java中遇到错误,因为不兼容的类型timestamp无法转换为时间。 我的MySQL数据库中有一个dttable,其列名和数据类型为Logindate日期、Logintime时间戳、LogoutTime时间戳 在index.jsp中,我们必须在Logindate、Logintime、LogoutTime中插入值 <%@page language="java" contentType="text/html charset=UTF-8"
<%@page language="java" contentType="text/html charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Timesheet Page</title>
</head>
<body>
<header>
<h2>WEEKLY TIME SHEET MANAGEMENT V 1.0</h2>
</header>
<form action="insertservlet" method="post">
<fieldset style="width: 90%">
<legend>Timesheet</legend>
<table>
<thead>
<tr>
<th>Date</th>
<th>Time In</th>
<th>Time Out</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="date" name="logindate" required="required" /></td>
<td><input type="time" name="logintime" required="required" /></td>
<td><input type="time" name="logouttime" required="required" /></td>
</tr>
</tbody>
</table>
</fieldset>
<input type="submit" value="Submit">
</form>
<a href="logout.jsp">Logout</a>
</body>
</html>
insertdao.java:
package com.eis.bean;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Date;
import java.sql.Timestamp;
public class insertdao {
public static int addBean(Bean user, String sql) throws SQLException {
int i = 0;
Connection conn = ConnectionProvider.getConn();
try {
PreparedStatement preparedStatement = conn.prepareStatement(sql);
// Parameters start with 1
preparedStatement.setDate(1, new Date(user.getLogindate().getTime()));
preparedStatement.setTimestamp(2, new Timestamp(user.getLogintime().getTime()));
preparedStatement.setTimestamp(3, new Timestamp(user.getLogouttime().getTime()));
i = preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
}
insertservlet.java:
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.eis.bean.Bean;
import com.eis.bean.insertdao;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
public class insertservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private insertdao dao;
public insertservlet() {
super();
dao = new insertdao();
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Bean user = new Bean();
try {
Date logindate = new SimpleDateFormat("yyyy/MM/dd").parse(request.getParameter("logindate"));
user.setLogindate((java.sql.Date) logindate);
} catch (ParseException e) {
e.printStackTrace();
}
try {
Date logintime = new SimpleDateFormat("HH:mm").parse(request.getParameter("logintime"));
user.setLogintime((java.sql.Timestamp) logintime);
} catch (ParseException ex) {
Logger.getLogger(insertservlet.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Date logouttime = new SimpleDateFormat("HH:mm").parse(request.getParameter("logouttime"));
user.setLogouttime((java.sql.Timestamp) logouttime);
} catch (ParseException ex) {
Logger.getLogger(insertservlet.class.getName()).log(Level.SEVERE, null, ex);
}
insertdao dao = new insertdao();
String sql = "INSERT INTO dttable (LoginDate, LoginTime, LogoutTime) VALUES (?, ?, ?)";
try {
int i = insertdao.addBean(user, sql);
if (i != 0) {
out.print("<p style=\"color:Green\">Record saved successfully!!</p>");
RequestDispatcher rd = request.getRequestDispatcher("Sucsess.jsp");
rd.forward(request, response);
} else {
out.print("<p style=\"color:red\">**Record cannot be saved!**</p>");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.include(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@
Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}@
Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}@
Override
public String getServletInfo() {
return "Short description";
}
}
导入java.io.PrintWriter;
导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入java.io.IOException;
导入java.text.ParseException;
导入java.text.simpleDataFormat;
导入java.util.Date;
导入com.eis.bean.bean;
导入com.eis.bean.insertdao;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入javax.servlet.RequestDispatcher;
公共类insertservlet扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
私人插刀;
公共insertservlet(){
超级();
dao=新的insertdao();
}
受保护的void processRequest(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
setContentType(“text/html;charset=UTF-8”);
PrintWriter out=response.getWriter();
Bean user=newbean();
试一试{
Date logindate=新的SimpleDataFormat(“yyyy/MM/dd”).parse(request.getParameter(“logindate”);
user.setLogindate((java.sql.Date)logindate);
}捕获(解析异常){
e、 printStackTrace();
}
试一试{
Date logintime=new SimpleDataFormat(“HH:mm”).parse(request.getParameter(“logintime”);
user.setLogintime((java.sql.Timestamp)logintime);
}捕获(解析异常){
Logger.getLogger(insertservlet.class.getName()).log(Level.SEVERE,null,ex);
}
试一试{
datelogouttime=newsimpledateformat(“HH:mm”).parse(request.getParameter(“logouttime”));
setLogouttime((java.sql.Timestamp)logouttime);
}捕获(解析异常){
Logger.getLogger(insertservlet.class.getName()).log(Level.SEVERE,null,ex);
}
insertdao=newinsertdao();
String sql=“插入dttable(LoginDate、LoginTime、LogoutTime)值(?,?)”;
试一试{
inti=insertdao.addBean(用户,sql);
如果(i!=0){
out.print(“记录保存成功!!
”;
RequestDispatcher rd=request.getRequestDispatcher(“successs.jsp”);
转发(请求、响应);
}否则{
out.print(“**无法保存记录!***
”;
RequestDispatcher rd=request.getRequestDispatcher(“index.jsp”);
包括(请求、响应);
}
}捕获(例外e){
e、 printStackTrace();
}
}
@
推翻
受保护的void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
processRequest(请求、响应);
}@
推翻
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
processRequest(请求、响应);
}@
推翻
公共字符串getServletInfo(){
返回“简短描述”;
}
}
请检查我的代码,如果代码不正确,请提供帮助。尝试setTimestamp(int-parameterIndex,java.sql.Timestamp x)
您可以添加您的表描述和异常跟踪吗?@saravanakumar CREATE table
dttable
(LoginDate
日期非空注释“”、LoginTime
时间戳(6)空注释“”、LogoutTime
时间戳(6)空注释“”、主键(LoginDate
)注释“”);谢谢你的回复。。。不是,我犯了不同的错误。HTTP状态500-java.util.Date不能转换为java.sql.Timestamp java.lang.ClassCastException:java.util.Date不能转换为java.sql.Timestamp insertservlet.processRequest(insertservlet.java:55)insertservlet.doPost(insertservlet.java:115)javax.servlet.HTTP.HttpServlet.service(HttpServlet.java:648)javax.servlet.http.HttpServlet.service(HttpServlet.java:729)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)使用java.sql.Timestamp Timestamp=new java.sql.Timestamp(logintime.getTime())
转换登录和注销时间的时间戳中的日期感谢reply@saravanakumar现在我犯了不同的错误。HTTP状态500-java.util.Date不能转换为java.sql.Timestamp java.lang.ClassCastException:java.util.Date不能转换为java.sql.Timestamp insertservlet.processRequest(insertservlet.java:55)insertservlet.doPost(insertservlet.java:115)javax.servlet.HTTP.HttpServlet.service(HttpServlet.java:648)javax.servlet.http.HttpServlet.service(HttpServlet.java:729)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)能否请您指定我必须添加上述行的位置。Date logintime=new SimpleDateFormat(“HH:mm”).parse(request.getParameter(“logintime”);user.setLogintime(新的java.sql.Timestamp(logintime.getTime());//对logouttime执行相同的操作
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.eis.bean.Bean;
import com.eis.bean.insertdao;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
public class insertservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private insertdao dao;
public insertservlet() {
super();
dao = new insertdao();
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Bean user = new Bean();
try {
Date logindate = new SimpleDateFormat("yyyy/MM/dd").parse(request.getParameter("logindate"));
user.setLogindate((java.sql.Date) logindate);
} catch (ParseException e) {
e.printStackTrace();
}
try {
Date logintime = new SimpleDateFormat("HH:mm").parse(request.getParameter("logintime"));
user.setLogintime((java.sql.Timestamp) logintime);
} catch (ParseException ex) {
Logger.getLogger(insertservlet.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Date logouttime = new SimpleDateFormat("HH:mm").parse(request.getParameter("logouttime"));
user.setLogouttime((java.sql.Timestamp) logouttime);
} catch (ParseException ex) {
Logger.getLogger(insertservlet.class.getName()).log(Level.SEVERE, null, ex);
}
insertdao dao = new insertdao();
String sql = "INSERT INTO dttable (LoginDate, LoginTime, LogoutTime) VALUES (?, ?, ?)";
try {
int i = insertdao.addBean(user, sql);
if (i != 0) {
out.print("<p style=\"color:Green\">Record saved successfully!!</p>");
RequestDispatcher rd = request.getRequestDispatcher("Sucsess.jsp");
rd.forward(request, response);
} else {
out.print("<p style=\"color:red\">**Record cannot be saved!**</p>");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.include(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@
Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}@
Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}@
Override
public String getServletInfo() {
return "Short description";
}
}
preparedStatement.setTimestamp(2, new Timestamp(user.getLogintime().getTimes()));
preparedStatement.setTimestamp(3, new Timestamp(user.getLogouttime().getTime()));