package mensajes3;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class Persistencia {
private String driver;
private String connection;
private String destino;
public Persistencia() {
}
public void createTables() {
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(connection + ";create=true");
Statement s = conn.createStatement();
s.execute("create table mensajes(remite varchar(50), destino varchar(50), "
+ "mensaje varchar(1024))");
s.close();
conn.commit();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
private Connection getConnection() throws SQLException,
ClassNotFoundException {
return DriverManager.getConnection(connection);
}
public void create(Mensaje msg) throws SQLException, ClassNotFoundException {
Connection conn = getConnection();
PreparedStatement st = conn
.prepareStatement("insert into mensajes (remite, destino, mensaje) values (?,?,?)");
st.setString(1, msg.getRemite());
st.setString(2, msg.getDestino());
st.setString(3, msg.getTexto());
if (st.executeUpdate() == 0)
System.out.println("No se pudo insertar");
st.close();
conn.commit();
}
public List<Mensaje> getMessages() throws SQLException,
ClassNotFoundException {
Connection conn = getConnection();
PreparedStatement st = conn
.prepareStatement("select remite, mensaje from mensajes where destino = ?");
st.setString(1, destino);
ResultSet resultset = st.executeQuery();
List<Mensaje> result = new ArrayList<Mensaje>();
while (resultset.next()) {
Mensaje msg = new Mensaje();
msg.setDestino(destino);
msg.setRemite(resultset.getString("remite"));
msg.setTexto(resultset.getString("mensaje"));
result.add(msg);
}
resultset.close();
st.close();
conn.commit();
return result;
}
public void setDriver(String driver) {
this.driver = driver;
}
public void setConnection(String connection) {
this.connection = connection;
}
public String getDestino() {
return destino;
}
public void setDestino(String destino) {
this.destino = destino;
}
}