Witam,
natknąłem się na problem, w którym program nie zgłasza wyjątków, natomiast nie ma żadnej reakcji. Trochę kodu:
Klasa CategoryService
public class CategoryService {
Connection c;
public void addNewCategory(Category category) throws ClassNotFoundException {
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:Sklep.db");
if(c != null) {
Statement statement = c.createStatement();
statement.executeQuery("INSERT INTO category(name) VALUES(" + category.getName() + ");");
}
else {
System.err.print("Problem with get connection");
}
}catch(SQLException e) {
System.err.print("Problem with adding a new category" + e);
}
finally {
try
{
if(c != null)
c.close();
}
catch(SQLException e)
{
System.err.println(e);
}
}
}
}
Klasa kontrolera, która korzysta z powyższej do dodania do bazy rekordu
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pl.project.sklep.dialogWindows.AddNewCategory;
import java.io.IOException;
import java.net.URL;
import java.sql.SQLException;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import pl.project.sklep.dialogWindows.succes.SuccesDialog;
import pl.project.sklep.model.Category;
import pl.project.sklep.services.CategoryService;
/**
* FXML Controller class
*
* @author Dreando
*/
public class AddNewCategoryController implements Initializable {
/**
* Initializes the controller class.
*/
@FXML
private Button add;
CategoryService cs;
@FXML
private TextField name;
@FXML
private void addCategory(ActionEvent event) throws IOException, ClassNotFoundException {
Category category = new Category(name.getText().toString());
cs.addNewCategory(category);
SuccesDialog dialog = new SuccesDialog();
dialog.show();
Node source = (Node) event.getSource();
Stage stage = (Stage) source.getScene().getWindow();
stage.close();
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
Umiejscowienie bazy
W czym może być problem? Źle łączę się z bazą? Chciałem też rozbić sobie połączenie na osobną klasę i pobierać od razu statement albo connection do metody obsługującej, ale też nie działa.