Está en la página 1de 7

En anteriores entradas expliqu como he ido desarrollando una aplicacin para Android que enviaba mensajes al pc para un proyecto

de fin de curso. Bien, ahora voy a explicar en que consiste la aplicacin exactamente, que an no lo he hecho.Se trara de desarrollar un programa para bares, en la cual cada camarero tendr una PDA, o dispositivo Android, desde la cual anotar los pedidos de los clientes. La PDA enviar estos pedidos al servidor que contiene una Base de datos, y este imprimir los tickets. Para esto es necesario establecer una conexin PDA-Base de datos del Servidor. Lo primero que hay que hacer es intalar SQL server 2008 y configurarlo para que se pueda acceder de dos formas (con autentificacin windows y con autentificacin SQl server), esto se pregunta durante la instalacin de SQL server, posteriormente hay que crear un usuario SQL server, aqui se explica como hacerlo. Tambien debemos permitir conexiones remotas. Ahora vamos al cdigo, (que he sacado de un ejemplo de la web de microsoft), al cual solo he aadido una consulta a una tabla de mi base de datos. Ahora vamos a crear un proyecto, yo lo he creado en ecplise, es necesario agregarle las libreras JDBC para que hagan de puente entre la aplicacin y la base de datos. En ecplise se aaden en las propiedades del proyecto/JAva Build Path/Libraries, estas libreras podeis descargarlas de aqui, si no lo hacis en ecplise, en este enlace se ve como configurarlo

Data provided by Pastebin.com - Download Raw - See Original 1. import java.sql.Statement; 2. 3. public class Test { 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. // Constructor public Test() { private java.sql.Connection connection = null; private final String url = "jdbc:microsoft:sqlserver://"; private final String serverName = "192.168.1.38"; private final String portNumber = "1433"; private final String databaseName = "db_WifiBar"; private final String userName = "algui91"; private final String password = "1234"; private final String statement = "select * from prueba;"; // Informs the driver to use server a side-cursor, // which permits more than one active statement // on a connection. private final String selectMethod = "Direct";

19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. (), 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.

private String getConnectionUrl() { return url + serverName + ":" + portNumber + ";databaseName=" + databaseName + ";selectMethod=" + selectMethod + ";"; } private java.sql.Connection getConnection() { try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); connection = java.sql.DriverManager.getConnection(getConnectionUrl userName, password); if (connection != null) System.out.println("Connection Successful!"); } catch (Exception e) { e.printStackTrace(); System.out.println("Error Trace in getConnection() : " + e.getMessage()); } return connection; } /* * Display the driver properties, database details */ public void displayDbProperties() { java.sql.DatabaseMetaData dm = null; java.sql.ResultSet result = null; try { connection = this.getConnection(); if (connection != null) { dm = connection.getMetaData(); System.out.println("Driver Information"); System.out.println("\tDriver Name: " + dm.getDriverName());

54. 55. " +dm.getDriverVersion()); 56.

System.out .println("\tDriver Version: System.out.println("\nDatabase Information ");

57. 58. 59. 60. 61. 62. 63. 64. 65. 66.

System.out.println("\tDatabase Name: " + dm.getDatabaseProductName()); System.out.println("\tDatabase Version: " + dm.getDatabaseProductVersion());

Statement select = connection.createStatement(); result = select.executeQuery(statement); while (result.next()) { System.out.println("Nombre: " + result.getString(1) + "\n"); System.out.println("Apellido: " + result.getString(2) + "\n");

67.

68. " + result.getString(3) + "\n"); 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. } } } } } dm = null; } else }

System.out.println("Dni:

result.close(); result = null; closeConnection(); System.out.println("Error: No active Connection"); } catch (Exception e) { e.printStackTrace();

private void closeConnection() { try { if (connection != null) connection.close(); connection = null; } catch (Exception e) { e.printStackTrace();

public static void main(String[] args) throws Exception { Test myDbTest = new Test(); myDbTest.displayDbProperties();

95. } Data provided by Pastebin.com - Download Raw - See Original 1. import java.sql.Statement; 2. 3. public class Test { 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. (), 30. 31. 32. 33. 34. 35. 36. userName, password); if (connection != null) System.out.println("Connection Successful!"); } catch (Exception e) { e.printStackTrace(); System.out.println("Error Trace in getConnection() : " + e.getMessage()); private java.sql.Connection getConnection() { try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); connection = java.sql.DriverManager.getConnection(getConnectionUrl } private String getConnectionUrl() { return url + serverName + ":" + portNumber + ";databaseName=" + databaseName + ";selectMethod=" + selectMethod + ";"; // Constructor public Test() { } private java.sql.Connection connection = null; private final String url = "jdbc:microsoft:sqlserver://"; private final String serverName = "192.168.1.38"; private final String portNumber = "1433"; private final String databaseName = "db_WifiBar"; private final String userName = "algui91"; private final String password = "1234"; private final String statement = "select * from prueba;"; // Informs the driver to use server a side-cursor, // which permits more than one active statement // on a connection. private final String selectMethod = "Direct";

37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. /* }

} return connection;

* Display the driver properties, database details */ public void displayDbProperties() { java.sql.DatabaseMetaData dm = null; java.sql.ResultSet result = null; try { connection = this.getConnection(); if (connection != null) { dm = connection.getMetaData(); System.out.println("Driver Information"); System.out.println("\tDriver Name: " + dm.getDriverName());

54. 55. " +dm.getDriverVersion()); 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.

System.out .println("\tDriver Version:

System.out.println("\nDatabase Information "); System.out.println("\tDatabase Name: " + dm.getDatabaseProductName()); System.out.println("\tDatabase Version: " + dm.getDatabaseProductVersion()); Statement select = connection.createStatement(); result = select.executeQuery(statement);

while (result.next()) { System.out.println("Nombre: " + result.getString(1) + "\n");

67. " + result.getString(2) + "\n"); 68. " + result.getString(3) + "\n"); 69. 70. 71. 72. }

System.out.println("Apellido: System.out.println("Dni:

result.close(); result = null; closeConnection();

73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. } } } } } }

} else System.out.println("Error: No active Connection"); } catch (Exception e) { e.printStackTrace();

dm = null;

private void closeConnection() { try { if (connection != null) connection.close(); connection = null; } catch (Exception e) { e.printStackTrace();

public static void main(String[] args) throws Exception { Test myDbTest = new Test(); myDbTest.displayDbProperties();

Y la slida de ejecutar la aplicacin: Connection Successful! Driver Information Driver Name: SQLServer Driver Version: 2.2.0022

Database Information Database Name: Microsoft SQL Server Database Version: Microsoft SQL Server Yukon - 10.0.1600 Algunos datos de la BD Nombre: Alejandro

Apellido: Alcalde

Dni: 12345678 Espero que os sirva de ayuda, he escrito esta entrada rpido por falta de tiempo, as que si algo no se entiende no dudes en preguntar e intentar ayudarte.