Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. package Database;
  2.  
  3. import java.sql.*;
  4. import java.util.ArrayList;
  5.  
  6. /**
  7. * Clase encargada de conectar a MySQL, permitiendo realizar consultas y
  8. * obteniendo sus resultados.
  9. *
  10. * @author Ivan Botero
  11. */
  12. public class Database {
  13.  
  14. /**
  15. * Clase usada para realizar la conexion
  16. */
  17. private static final String CLASE = "com.mysql.jdbc.Driver";
  18.  
  19. /**
  20. * Atributos de la conexion
  21. */
  22. private final String host;
  23. private final String usuario;
  24. private final String clave;
  25. private final String nombre;
  26. private final String url;
  27.  
  28. /**
  29. * Recursos de conexion
  30. */
  31. private Connection link;
  32. private Statement statement;
  33.  
  34. /**
  35. * Mensaje de error
  36. */
  37. private String mensajeError;
  38.  
  39. /**
  40. * Constructor
  41. *
  42. * Aqui almacenaremos los datos respectivos a la conexion con el DBMS:
  43. *
  44. * @param host Direccion del servidor DBMS
  45. * @param usuario Usuario del DBMS
  46. * @param clave Clave del usuario
  47. * @param nombre Nombre de la base de datos a la que se conectara
  48. *
  49. */
  50. public Database(String host, String usuario, String clave, String nombre) {
  51.  
  52. /* Asignamos los atributos */
  53. this.host = host;
  54. this.usuario = usuario;
  55. this.clave = clave;
  56. this.nombre = nombre;
  57.  
  58. /* Asignamos el mensaje de error */
  59. this.mensajeError = "";
  60.  
  61. /* Creamos la URL */
  62. this.url = "jdbc:mysql://" + this.host + "/" + this.nombre;
  63.  
  64. }
  65.  
  66. /**
  67. * Este metodo inicia la conexion a la base de datos
  68. *
  69. * @return boolean Resultado de la operacion TRUE si se conecto
  70. * exitosamente, FALSE en caso contrario.
  71. */
  72. public boolean conectar() {
  73.  
  74. try {
  75.  
  76. Class.forName(CLASE).newInstance();
  77. this.link = DriverManager.getConnection(this.url, this.usuario, this.clave);
  78.  
  79. } catch (ClassNotFoundException | IllegalAccessException | InstantiationException | SQLException e) {
  80. this.mensajeError = e.getMessage();
  81. return false;
  82. }
  83.  
  84. return true;
  85. }
  86.  
  87. /**
  88. * Se encarga de ejecutar una consulta, que no arrojara ningun resultado
  89. * (INSERT, UPDATE, DELETE).
  90. *
  91. * @param consulta Consulta a ejecutar
  92. * @return boolean Resultado de la operacion TRUE si se desconecto
  93. * exitosamente, FALSE en caso contrario.
  94. */
  95. public boolean consulta(String consulta) {
  96.  
  97. int resultado;
  98.  
  99. try {
  100.  
  101. this.statement = this.link.createStatement();
  102. resultado = this.statement.executeUpdate(consulta);
  103.  
  104. } catch (SQLException e) {
  105. this.mensajeError = e.getMessage();
  106. return false;
  107. }
  108.  
  109. return (resultado > 0);
  110. }
  111.  
  112. /**
  113. * Se encarga de ejecutar una consulta, que arrojara un resultado (SELECT)
  114. *
  115. * @param consulta Consulta a ejecutar
  116. * @return ArrayList Lista con los resultados obtenidos de la consulta
  117. */
  118. public ArrayList<Object> obtener(String consulta) {
  119.  
  120. /* Resultados */
  121. ArrayList<Object> listado = new ArrayList<>();
  122. ResultSet resultado;
  123.  
  124. /* Realizamos la consulta */
  125. try {
  126.  
  127. this.statement = this.link.createStatement();
  128. resultado = this.statement.executeQuery(consulta);
  129.  
  130. } catch (SQLException e) {
  131. this.mensajeError = e.getMessage();
  132. return null;
  133. }
  134.  
  135. /* Guardamos el resultado */
  136. try {
  137.  
  138. while (resultado.next()) {
  139. listado.add(resultado);
  140. }
  141.  
  142. } catch (SQLException e) {
  143. this.mensajeError = e.getMessage();
  144. return null;
  145. }
  146.  
  147. return listado;
  148. }
  149.  
  150. /**
  151. * Realiza la desconexion del DBMS
  152. *
  153. * @return boolean Resultado de la operacion TRUE si se desconecto
  154. * exitosamente, FALSE en caso contrario.
  155. */
  156. public boolean desconectar() {
  157.  
  158. try {
  159.  
  160. this.link.close();
  161.  
  162. } catch (SQLException e) {
  163. this.mensajeError = e.getMessage();
  164. return false;
  165. }
  166.  
  167. return true;
  168. }
  169.  
  170. public String getMensajeError() {
  171. return mensajeError;
  172. }
  173.  
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement