Resumen: Este artículo aprende principalmente cómo usar DBUtils para operar la base de datos de manera más conveniente en código Java.
Visión de conjunto
DBUtils es una práctica herramienta para el funcionamiento de bases de datos en programación Java, compacta, sencilla y práctica.
DBUtils encapsula las operaciones JDBC, simplifica las operaciones JDBC y puede escribir menos código.
usar
Listo
Si necesita utilizar la clase de herramienta DBUtils, debe importar el paquete:
commons-dbutils-1.7.jar
DBUtils encapsula el funcionamiento de la base de datos después de que se establece la conexión y tiene principalmente tres funciones principales:
1) La clase QueryRunner proporciona API para operaciones de instrucciones SQL.
2) La interfaz ResultSetHandler se utiliza para definir cómo encapsular el conjunto de resultados después de la operación de consulta.
3) La clase de herramienta DBUtils define métodos para cerrar recursos y procesar transacciones.
Método común
Método de construcción
Proporciona dos métodos de construcción con y sin fuente de datos.
public QueryRunner();// 不提供数据源,需要手动维护Connection。
public QueryRunner(DataSource ds);// 提供数据源,DbUtils底层自动维护连接Connection。
Operación de consulta
Admite operaciones de consulta.
public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh);
public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params);
public <T> T query(String sql, ResultSetHandler<T> rsh);
public <T> T query(String sql, ResultSetHandler<T> rsh, Object... params);
Operación de actualización
Apoyar la ejecución de operaciones de agregar, modificar y eliminar.
public int update(Connection conn, String sql);
public int update(Connection conn, String sql, Object param);
public int update(Connection conn, String sql, Object... params);
public int update(String sql);
public int update(String sql, Object param);
public int update(String sql, Object... params);
Agregar operación
Admite la ejecución de operaciones de adición y puede devolver los datos agregados.
public <T> T insert(Connection conn, String sql, ResultSetHandler<T> rsh);
public <T> T insert(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params);
public <T> T insert(String sql, ResultSetHandler<T> rsh);
public <T> T insert(String sql, ResultSetHandler<T> rsh, Object... params);
Ejecución por lotes
Admite la ejecución por lotes de operaciones de adición, modificación y eliminación.
public int[] batch(Connection conn, String sql, Object[][] params);
public int[] batch(String sql, Object[][] params);
Procedimiento almacenado
Admite la ejecución de la instrucción de procedimiento con error y también admite la instrucción sin procedimiento almacenado, pero no se recomienda llamar a este método para la instrucción sin procedimiento con error.
public int execute(Connection conn, String sql, Object... params);
public int execute(String sql, Object... params);
public <T> List<T> execute(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params);
public <T> List<T> execute(String sql, ResultSetHandler<T> rsh, Object... params);
Descripción de la interfaz ResultSetHandler
- BeanHandler: encapsula la primera fila de datos en el conjunto de resultados en una instancia de JavaBean correspondiente.
- BeanListHandler: encapsula cada fila de datos en el conjunto de resultados en una instancia correspondiente * * * * JavaBean, y luego guárdalo en la Lista.
- ArrayHandler: convierte la primera fila de datos del conjunto de resultados en una matriz de objetos.
- ArrayListHandler: convierta cada fila de datos en el conjunto de resultados en una matriz de objetos y luego guárdelo en la Lista.
- MapHandler: encapsula la primera fila de datos del conjunto de resultados en un mapa, donde la clave es el nombre de la columna y el valor es el valor correspondiente.
- MapListHandler: encapsula cada fila de datos en el conjunto de resultados en un mapa y luego lo almacena en la lista
- ScalarHandler: coloque una columna de la primera fila del conjunto de resultados en un objeto.
Cerrar recursos y procesamiento de transacciones
El constructor utilizado al crear el QueryRunner determina si cerrar automáticamente el recurso Connection:
1) Si se pasa la fuente de datos, la conexión se cerrará automáticamente y no es necesario pasar la conexión al llamar al método de agregar, eliminar, verificar y modificar. Este método hará que se establezca una nueva conexión cada vez que se ejecute SQL, y la conexión se desconectará después de que se ejecute SQL, y la transacción no se puede controlar a través de Connection.
2) Si no hay una fuente de datos entrante, la conexión debe cerrarse manualmente y la conexión debe pasarse manualmente al llamar al método de adición, eliminación y modificación. De esta manera, no se obtendrán nuevas conexiones cuando se ejecute SQL, y la conexión no se desconectará después de que se complete la ejecución de SQL, y las transacciones se pueden controlar en función de la Conexión entrante.