これはクラスのコンストラクターの1つです。新しいオブジェクトは、データベースに新しいレコードを作成します。このオブジェクトをソースコードで「手動で」作成すると、すべて問題ありません。しかし、作成の宣言をボタンのactionlistenerに入れると、コンパイラはsql例外を返します。
public Pacjent()
{
try
{
Connection conn = DataBase.Connect();
Statement stat = conn.createStatement();
String addRecord = "INSERT INTO records VALUES (12365, 'Bond', 'James', 'M', '12.41.1953r', 'Londyn', 'none');";
stat.executeUpdate(addRecord);
}
catch(SQLException e)
{
e.printStackTrace();
}
}
私が得る例外は
org.postgresql.util.PSQLException:この接続は閉じられました。org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:714)at org.postgresql.jdbc3.AbstractJdbc3Connection.createStatement(AbstractJdbc3Connection.java:230)at org.postgresql.jdbc2.Abs )at klasySilnika.Pacjent。(Pacjent.java:61)at klasyInterfejsu.NowaKarta $ 1.actionPerformed(NowaKarta.java:155)at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)at javax.swing.AbstractButton $ Handler .actionPerformed(AbstractButton.java:2341)at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)atjavax.swing.plaf。
これはactionlistenerです:
saveButton.addActionListener
(
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent event)
{
Pacjent nowy = new Pacjent();
}
}
);
Database.Connectメソッド:
public class DataBase
{
public static Connection Connect()
{
return CONNECTION;
}
private static Connection CONNECTION = CreateConnection();
private static Connection CreateConnection()
{
try
{
Class.forName("org.postgresql.Driver");
Properties props = new Properties();
FileInputStream in = new FileInputStream("D:\\projekty\\Arch\\src\\klasySilnika\\bazadanych.properties");
props.load(in);
in.close();
String drivers = props.getProperty("jdbc.drivers");
if(drivers != null) System.setProperty("jdbc.drivers", drivers);
String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");
return DriverManager.getConnection(url, username,password);
}
catch (ClassNotFoundException e)
{
System.out.println("NO JDBC driver");
return null;
}
catch(IOException e)
{
System.out.println("Where is properties file?");
return null;
}
catch(SQLException e)
{
System.out.println("error: adress, user, password?");
return null;
}
finally
{
// ...
}
}
}