java.util.Date cannot be cast to java.sql.Date 将date类型的数据存入数据库

页面接受的date是java.util.date,放入数据库要用java.sql.date,实现两者之间的转化:

1.user.java

package model;
import java.util.Date;
public class User {
	public String username,password,address,email;
	Date birth;
	public User(){
	}
	public User(String username, String password, String address, String email, Date birth) {
		super();
		this.username = username;
		this.password = password;
		this.address = address;
		this.email = email;
		this.birth = birth;
	}
	//getter,setter方法。。略	
}

2.add.jsp:注册页面(我写的是struts2项目,但是将date放入数据库的例子是常见的)

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- struts2标签库调用声明 -->
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>注册</title>
</head>
<body>
<s:form action="add" methods="post">
<s:fielderror/>
<table width="60%" height="76" border="0">
<s:textfield name="user.username" label="用户名"/>
<s:password name="user.password" label="密 码"/>
<s:textfield name="user.email" label="邮  箱"/>
<s:textfield name="user.address" label="地  址"/>
<s:textfield name="user.birth"  format="yyyy-MM-dd" nice="false" label="出生日期"/>
<!--<s:textfield name="user.birth" label="出生日期"/>-->
<s:submit value="注册" align="center"/>
</table>
</s:form>
</body>
</html>

3.AddAction.java

package com;
import com.opensymphony.xwork2.ActionSupport;
import java.util.*;
import dao.AddDao;
import model.User;
public class AddAction extends ActionSupport{
	private static String FORWARD=null;//页面导向
	private User user =new User();
 	//private User user; 
   	public User getUser() {
       return user;
   	}
   	public void setUser(User user) {
       this.user = user;
   	}
	public String execute() throws Exception{
		AddDao dao=new AddDao();
		User u=new User();
		u=dao.findName(this.user.getUsername());
		if(u.getUsername()==null){
			System.out.println("注册成功");
			// System.out.println(this.user.getUsername());
			// System.out.println(u.getUsername());
			// System.out.println(u.getBirth());
			dao.add(this.user);//在AddDao中
			FORWARD="success";
		}
		else{
			System.out.println("注册失败");
			FORWARD="input";
		}
		return FORWARD;
	}
}

4.AddDao.java

package dao;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import model.User;

public class AddDao {
	Connection con;
	String driver="com.mysql.jdbc.Driver";
	String url="jdbc:mysql://localhost:3306/struts2";
	public AddDao(){
		try{ 
			Class.forName(driver);
			this.con=DriverManager.getConnection(url,"root","root");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
/*

public void add(User user){
	String sql="INSERT INTO user(username,password,address,email,birth) VALUES ( ?, ?, ?, ? ,?)";
	try {
		PreparedStatement cmd=this.con.prepareStatement(sql);
		cmd.setString(1, user.getUsername());
		cmd.setString(2, user.getPassword());
		cmd.setString(3, user.getAddress());
		cmd.setString(4, user.getEmail());
		cmd.setDate(5, new java.sql.Date(user.getBirth().getTime()));//重点
		cmd.executeUpdate();
	} catch (SQLException e) {
	// TODO Auto-generated catch block
		e.printStackTrace();
	}
...
}


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值