Classe de conexão com o banco de dados
package edu.univas.si4.lp4.dataaccess.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import edu.univas.si4.lp4.exceptions.ConnectionException;
public class ConnectDataBase {
public static Connection _connection = null;
static{
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public Connection openConection() throws ConnectionException{
if(_connection == null){
try {
_connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Doctor", "Diego", "12345");
} catch (SQLException e) {
e.printStackTrace();
throw new ConnectionException("Não foi possivel estabelecer conexão com o banco", e);
}
}
return _connection;
}
public void closeConnection() throws ConnectionException{
if(_connection != null){
try {
_connection.close();
} catch (SQLException e) {
e.printStackTrace();
throw new ConnectionException("Não foi possivel fechar a conexão com o banco de dados");
}
}
}
}
Classe DAO
package edu.univas.si4.lp4.dataaccess.dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import edu.univas.si4.lp4.dataaccess.Patient;
import edu.univas.si4.lp4.exceptions.ConnectionException;
public class PatientDAO {
private ConnectDataBase _connectDataBase = null;
private int _id = 0;
public PatientDAO() {
_connectDataBase = new ConnectDataBase();
}
public int getNextId() throws SQLException, ConnectionException {
Statement statement = _connectDataBase.openConection().createStatement();
ResultSet resultSet = statement.executeQuery("select nextval('seq_patient')");
resultSet.next();
_id = resultSet.getInt(1);
statement.close();
_connectDataBase.closeConnection();
return _id;
}
public void insert(Patient patient) throws SQLException, ConnectionException {
String sql = "INSERT INTO patient(" +
"id, full_name, birthday, age, email," +
" phonenumber, cellphonenumber, cpf, sexo," +
" identity, adress, neighborhood, cep, city)" +
"values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement preparedStatement = _connectDataBase.openConection().prepareStatement(sql);
preparedStatement.setInt(1, _id);
preparedStatement.setString(2, patient.getName());
preparedStatement.setDate(3, new java.sql.Date(patient.getBirthday().getTime()));
preparedStatement.setInt(4, patient.getAge());
preparedStatement.setString(5, patient.getEmail());
preparedStatement.setString(6, patient.getPhoneNumber());
preparedStatement.setString(7, patient.getCellPhoneNumber());
preparedStatement.setString(8, patient.getCpf());
preparedStatement.setString(9, patient.getSex());
preparedStatement.setString(10, patient.getIdentity());
preparedStatement.setString(11, patient.getAdress());
preparedStatement.setString(12, patient.getNeighborhood());
preparedStatement.setString(13, patient.getCep());
preparedStatement.setString(14, patient.getCity());
preparedStatement.executeUpdate();
preparedStatement.close();
_connectDataBase.closeConnection();
}
}
Aí está dando um erro de E/S ocorreu ao enviar um processo pro servidor.
O que pode ser??