从jframe向mysql数据库输入'date'

bbmckpt7  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(427)

(我正在使用netbeanside8.2)我正在制作一个jframe表单来注册一个新用户,它将在运行时接受来自用户的一些值,并将它们插入我在mysql中创建的数据库中。这是设计视图(忽略右上角的文本框)-

下面是我用jdbc写的代码-

现在,我面临的问题是输入出生日期。它显示了这个错误-

这是数据库和表-

我从错误中得到的只是mysql不能接受输入的值,我猜这可能是由于一些我不知道的隐式数据转换。我不明白怎么解决这个问题。请帮帮我(我还没有做任何数据验证)

xam8gpfp

xam8gpfp1#

编辑(感谢ole v.v.的建议) Date 很早就过时了,设计也很差,所以最好的选择是 LocalDate . 也就是说,解决办法是使用事先准备好的声明和:

jDateChooser1.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

请考虑将实际代码与代码图片进行比较。也就是说,插入 Date 对于mysql,它们需要采用这里描述的格式。所以你只需要在日期上做更多的调整。让我们使用 YYYY-MM-DD . 假设您使用的是 jDateChooser :

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dob = sdf.format(jDateChooser1.getSelectedDate().getTime());

顺便说一句,现在您正在手工构建查询并连接这些值,这对sql注入是开放的。请考虑使用事先准备好的声明

相关问题