当前位置: 首页 > 知识库问答 >
问题:

如何将datePicker信息放入sql数据库?

仲孙磊
2023-03-14

我试图做一个简单的程序,插入一个电影信息到一个数据库,ID,标题,和日期,但我不能把日期,我已经尝试了一些方法,包括java文档,但没有人帮助。

这是我的代码:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package prueba3;

import connectivity.ConnectioClass;
import java.net.URL;
import java.util.ResourceBundle;

import connectivity.DatabaseTableRowViewObject;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.time.LocalDate;
import javafx.collections.ObservableList;
import javafx.scene.control.DatePicker;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

/**
 *
 * @author Guillermo
 */
public class FXMLDocumentController implements Initializable {
    
    @FXML
    private Label label;
    @FXML
    private Button button;
    @FXML
    private TextField texto;
    @FXML
    private Button boton2;
    @FXML
    private TextField texto2;
    @FXML
    private DatePicker texto3;
    @FXML
    private TableColumn<DatabaseTableRowViewObject, Integer> id;
    @FXML
    private TableColumn<DatabaseTableRowViewObject, String> nombre;
    @FXML
    private TableColumn<DatabaseTableRowViewObject, String> fecha;
    
    @FXML
    private TableView<DatabaseTableRowViewObject> tabla;
    ObservableList<DatabaseTableRowViewObject> conexion;
    
    @FXML
    private void handleButtonAction(ActionEvent event) throws SQLException {
        label.setText(texto.getText());

        // added to make sure the properties of the object can be shown..
        id.setCellValueFactory(new PropertyValueFactory<>("id"));
        nombre.setCellValueFactory(new PropertyValueFactory<>("stringy"));
        fecha.setCellValueFactory(new PropertyValueFactory<>("fecha"));
        ConnectioClass connectioclass = new ConnectioClass();
        Connection Connection = connectioclass.getConnection();
        //String sql="INSERT INTO adios VALUES('"+texto.getText()+"')";
      
        String  pop = "INSERT INTO adios VALUES ('"+texto.getText()+"','" +texto2.getText()+"''" +texto3.getValue()+"')";
        //String paco = "INSERT INTO adios (nombre) VALUES('" +texto3.getText()+"')";
        
        Statement statement= Connection.createStatement();

        Statement f = Connection.createStatement();
        ConnectioClass.mostrar(f, tabla);

        //statement.executeUpdate(sql);
        Connection.createStatement();
        //statement.executeUpdate(paco);
                statement.executeUpdate(pop);
    }

    @FXML
    private void botoneliminar(ActionEvent event) throws SQLException {
        label.setText(texto.getText());
        ConnectioClass connectioclass = new ConnectioClass();
        Connection Connection = connectioclass.getConnection();
        String sql="DELETE FROM adios WHERE nombre =('"+texto.getText()+"')";
        Statement statement= Connection.createStatement();
        statement.executeUpdate(sql);
    }

    @FXML
    private void fechas(ActionEvent event){
        LocalDate fechas = texto3.getValue();
    }
    
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    
}

正如您所看到的,有一个名为“texto3”的日期,而texto3.getValue()不工作,所以我不知道该怎么做才能使我的日期选择器工作。

知道吗?祝你有愉快的一天。

共有1个答案

郎嘉树
2023-03-14

您应该使用java.sql.PreparedStatement,而不是java.sql.Statement。您还应该使用try-with-resources。用于插入数据库表adios的代码应该如下所示。

String  pop = "INSERT INTO adios VALUES (?, ?, ?)";
ConnectioClass connectioclass = new ConnectioClass();
try (java.sql.Connection connection = connectioclass.getConnection();
     java.sql.PreparedStatement ps = connection.prepareStatement(pop)) {
    ps.setString(1, texto.getText());
    ps.setString(2, texto2.getText());
    java.sql.Date theDate = java.sql.Date.valueOf(texto3.getValue());
    ps.setDate(3, theDate);
    ps.executeUpdate();
}

DatePicker类的getValue方法返回java.time.LocalDate。

方法setdate(在接口PreparedStatement中)接受java.sql.date参数。因此,您需要将localdate转换为java.sql.date。静态方法valueof(在接口java.sql.date中)为您执行转换。

 类似资料:
  • 问题内容: 我想从字节数组中提取一组坐标到DoubleBuffer中。 以下是如何将一组坐标从主字节数组提取到另一个字节数组的示例。 我的问题是: 如何将geomCoords字节数组放入DoubleBuffer? 还是 可以在不创建geomCoords的情况下将这些数据放入DoubleBuffer中?速度和效率是关键,因此任何捷径或优化都是最欢迎的! 问题答案: 如果您知道字节缓冲区中的8个字节确

  • 如何在模型中添加增量?

  • Iam在数据库中插入时出现异常 下面的persistence.xml。 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd“version=”1.0“>

  • 我对Kinesis是新手。阅读我发现的文档,我可以创建Kinesis流来从生产者那里获得数据。然后使用KCL将从流中读取这些数据以进行进一步的处理。我了解了如何通过引入IRecordProcessor来编写KCL应用程序。

  • 问题内容: 我希望我的问题不会很荒谬,因为令人惊讶的是,就流行的网站而言(据我所知)显然还没有真正问过这个问题。 情况是我有几个csv文件,总共包含1个以上的Mio观测值。每个观察结果都包含一个邮政地址。我打算将所有文件读入一个GeoDataFrame中,对地址进行地理编码,在给定shapefile的情况下执行空间连接,并为每行保存来自多边形的一些信息。我想是相当标准的。这是一次性数据清理过程的一