Java 如何将日期值从jDateChooser插入sql数据库
1-a我就是这样尝试的Java 如何将日期值从jDateChooser插入sql数据库,java,sql,date,Java,Sql,Date,1-a我就是这样尝试的 String sql = "insert into transport(s_id,transport_date)" + " values ( + jTextField2.getText()+"," + ((JTextField)jDateChooser1.getDateEditor().getUiComponent()).getText() +"
String sql = "insert into transport(s_id,transport_date)" +
" values ( + jTextField2.getText()+","
+ ((JTextField)jDateChooser1.getDateEditor().getUiComponent()).getText() +")";
pst=con .prepareStatement(sql2);
pst.executeUpdate();
2-这边
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String date=sdf.format(jDateChooser1.getDate());
String sql = "insert into transport(s_id,transport_date)" +
" values ( + jTextField2.getText()+","
+ date +")";
在逃
今天的例子选择:2021-5-27
将插入1989年 使用
+
在SQL语句中放置数据是极其危险的。除了跨站点脚本之外,它也是软件中黑客和漏洞的最大来源之一!有关更详细的说明,请在web上搜索“SQL注入”
在任何情况下,都不要使用串联(使用+
或StringBuilder或StringBuffer或Formatter或任何其他类似的字符串构造机制)将数据放置在SQL语句中
将用户提供的数据添加到数据库语句的唯一安全方法是使用PreparedStatement。传递给prepareStatement
的字符串参数中不得包含任何数据。而是在字符串中放置问号(?
),作为数据的占位符;然后使用PreparedStatement的各种set*方法用数据替换每个问号。这使得准备好的声明能够保证安全
Instant instant = jDateChooser1.getDate().toInstant();
LocalDate date = instant.atZone(ZoneId.systemDefault()).toLocalDate();
String sql = "insert into transport(s_id,transport_date) values (?, ?)";
pst = con.prepareStatement(sql);
pst.setString(1, jTextField2.getText());
pst.setObject(2, date);
pst.executeUpdate();
使用一个和一个setDate方法怎么样?1)至少第一个代码段看起来甚至都不会编译。为了更快地获得更好的帮助,请添加或。2) 调试时,将所有GUI部分分离出来,然后尝试将日期插入数据库(从控制台应用程序)。该标记已被删除。请尝试查看此链接,了解如何使用jdatechooser