java - móviles - manual programacion android español pdf
¿Debe una conexión de base de datos permanecer abierta todo el tiempo o solo abrirse cuando sea necesario? (6)
Tengo un plugin de bukkit (Minecraft) que requiere una conexión a la base de datos.
¿Debe una conexión de base de datos permanecer abierta todo el tiempo, o abrirse y cerrarse cuando sea necesario?
Cada vez que te conectas tienes un retraso, ahora imagina qué sucede si siempre te conectas y cierras
Debe cerrar sus conexiones después de cada ejecución de consultas. A veces, debe ejecutar varias consultas al mismo tiempo porque las consultas se cuelgan unas de otras. Por ejemplo, "inserte la primera tarea y luego asignela a los empleados". En este momento, ejecute su Realice las consultas en la misma transacción y confírmelas, si se producen algunos errores, restaure. Por defecto, la confirmación automática está deshabilitada en JDBC. Example
Use la agrupación de conexiones. Si está desarrollando una aplicación web, use la agrupación de conexiones del Servidor de Aplicaciones. El servidor de aplicaciones utilizará la misma agrupación para cada una de sus aplicaciones, de modo que puede controlar el recuento de conexiones desde un punto. Example
Como información adicional: Conexión, Declaración y ResultSet.
1. Si cierra la conexión, no necesita una declaración ni un conjunto de resultados. Ambos se cerrarán automáticamente
2.Si cierras el estado de cuenta, también se cerrará ResultSet.
3. si usas try-with-resources como este:
try (Connection con = ...) {
} catch (SQLException e) {
}
cerrará la conexión automáticamente. Porque try-with-resources requiere objetos que se pueden cerrar automáticamente y Connection se puede cerrar automáticamente. here puede ver los detalles sobre try-with-resources
Depende de cuales sean tus necesidades.
Crear una conexión lleva algún tiempo, por lo que si necesita acceder a la base de datos con frecuencia, es mejor mantener la conexión abierta. También es mejor crear un grupo, de modo que muchos usuarios puedan acceder a la base de datos simultáneamente (si es necesario).
Si necesita usar esta conexión solo unas cuantas veces, es posible que no la mantenga abierta, pero tendrá demoras cuando desee acceder a la base de datos. Así que le sugiero que haga un temporizador que mantendrá la conexión abierta durante algún tiempo (tiempo de espera de conexión).
En realidad, ¡todo depende de cómo escribas tu aplicación! Es un arte, pero lamentablemente todos toman un tutorial para una buena práctica como los tutoriales de Microsoft.
Si sabe qué está codificando, entonces mantendrá su conexión abierta durante toda la vida de la aplicación. Es simple, no porque tenga que ir al trabajo por la mañana, ¡todos los días tenemos que construir una ruta especial solo para usted! ¡Tomas esa ruta única o 2 o 4 como todos lo hacen! Juzga por los tráficos y construye 2, 4 o 6 rutas según sea necesario. Si hay tráfico con estas 4 o 6 rutas, ¡espere!
Feliz codificacion
La conexión de la base de datos debe abrirse solo cuando sea necesario y cerrada después de hacer todo el trabajo necesario con ella. Ejemplo de código:
Antes de Java 7:
Connection con = null; try { con = ... //retrieve the database connection //do your work... } catch (SQLException e) { //handle the exception } finally { try { if (con != null) { con.close(); } } catch (SQLException shouldNotHandleMe) { //... } }
Java 7:
try (Connection con = ...) { } catch (SQLException e) { } //no need to call Connection#close since now Connection interface extends Autocloseable
Pero como la apertura manual de una conexión de base de datos es demasiado costosa, se recomienda encarecidamente utilizar un conjunto de conexiones de base de datos . Esto manejará las conexiones físicas de la base de datos y cuando la cierre (es decir, llamando a Connection#close
), la conexión física de la base de datos solo estará en modo SLEEP y seguirá abierta.
Relacionado Q / A:
- Agrupación de conexiones Java
Algunas herramientas para manejar la agrupación de conexiones de base de datos:
La conexión debe abrirse solo cuando sea necesario. Si está abierto antes de la necesidad real, reduce una conexión activa del grupo de conexiones ... por lo que finalmente afecta a los usuarios de la aplicación.
Por lo tanto, siempre es una mejor práctica abrir la conexión solo cuando sea necesario y cerrarla después de completar el proceso.
Siempre intente poner su lógica de cierre de conexión dentro del bloque finally para garantizar que su conexión se cerrará, incluso si se produce una excepción en la aplicación
finally
{
connection.close()
}