[英]How to put Spring Boot logging data into database? I want to put all INFO and ERROR messages to database
[英]How can i put the datePicker info into my sql database?
我正在嘗試制作一個簡單的程序,將電影信息、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()
不起作用,所以我不知道該怎么做才能讓我的日期選擇器工作。
任何想法? 祝你今天過得愉快。
您應該使用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();
}
class DatePicker的方法getValue
返回java.time.LocalDate 。
方法setDate
(在PreparedStatement
接口中)接受java.sql.Date
參數。 因此,您需要將LocalDate
轉換為java.sql.Date
。 Static 方法valueOf
(在接口java.sql.Date
中)為您進行轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.