Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将日期值从jDateChooser插入sql数据库_Java_Sql_Date - Fatal编程技术网

Java 如何将日期值从jDateChooser插入sql数据库

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() +"

1-a我就是这样尝试的

 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