Date类在sql中都是java.sql.Date类型,但是如果这个日期是手动输入作为变量来进行设置时,这时是java.util.Date类型,需要进行转化java.sql.Date.
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名称:");
String username = sc.next();
System.out.println("请输入用户年龄:");
int age = sc.nextInt();
System.out.println("请输入用户邮箱:");
String email = sc.next();
System.out.println("请输入用户描述:");
String userdes = sc.next();
System.out.println("请输入入职时间:");
String hiredate = sc.next();
/* String 转为java.sql.Date 分为两步
1. String 转为java.util.Date
2. java.util.Date 转为java.sql.Date
*/
java.util.Date uhiredate = null;
// 1. String 转为java.util.Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
uhiredate = sdf.parse(hiredate);
} catch (ParseException e) {
e.printStackTrace();
}
// 2. 把kava.util.Date 转化为 java.sql.Date
long time = uhiredate.getTime(); // 获取子1970年到现在的毫秒数
java.sql.Date shiredate = new java.sql.Date(time);
Connection con = null;
PreparedStatement pstat = null;
try{
//获得连接
con = JDBCUtils.getConnection();
//编写sql
String sql = "insert user values(null, ?, ?, ?, ?, ?)";
pstat = con.prepareStatement(sql);
pstat.setString(1, username);
pstat.setInt(2, age);
pstat.setString(3, email);
pstat.setString(4, userdes);
pstat.setDate(5, shiredate);
int n = pstat.executeUpdate();
if(n > 0){
System.out.println("保存成功!");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCUtils.releaseResources(pstat, con);
}
}