Java Apache DBUtil
当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练
https://commons.apache.org/proper/commons-dbutils/
名称 | 说明 |
---|---|
DBUtils | 辅助(打开&关闭连接.....) |
QueryRunner | 增删查改 |
ResultSetHandler | 如果是 “查” 操作,则需要ResultSetHandler来处理结果集 |
ArrayHandler | 返回结果集中的第一行数据,用Object[ ] 数组接收。 |
BeanHandler | 返回结果集中的第一行数据,并封装到一个对应的JavaBean对象实例中。 |
BeanListHandler | 返回结果集中的多行数据,并封装存放到List里 |
MapHandler | 将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。//重点 |
MapListHandler | 将结果集中的每一行数据都封装到一个Map里,然后再存放到List |
ColumnListHandler | ColumnListHandler |
ScalarHandler | 将结果集第一行的某一列放到某个对象中 |
MySQLDBUtil
package com.cmz.util; import java.sql.*; /** * @author summer * @create 2020-02-16 13:32 */ public class MySQLDBUtil { public static final String URL = "jdbc:mysql://localhost:3306/test"; public static final String USERNAME = "root"; public static final String PASSWORD = "root"; static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /*** * 获取数据连接 */ public static Connection getConnection(){ try { return DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (SQLException e) { e.printStackTrace(); } return null; } /* * 关闭连接 * */ public static void closeConnection(Connection connection,Statement statement){ if(statement != null){ try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if(connection != null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void closeConnection(Connection connection, Statement statement, ResultSet resultSet){ if(resultSet != null){ try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if(statement != null){ try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if(connection != null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
package com.cmz.apacheDBUtil; import com.cmz.entity.Emp; import com.cmz.util.MySQLDBUtil; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.handlers.*; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.Set; /** * @author summer * @create 2020-02-16 18:42 */ public class DBUtilTest { public static Connection connection; public static void testQuery() throws SQLException { connection = MySQLDBUtil.getConnection(); String sql = "select * from emp where empno=?"; QueryRunner runner = new QueryRunner(); Emp query = runner.query(connection, sql, new BeanHandler<Emp>(Emp.class),7369); System.out.println(query); connection.close(); } public static void testList() throws SQLException { connection = MySQLDBUtil.getConnection(); String sql = "select * from emp"; QueryRunner runner = new QueryRunner(); List<Emp> query = runner.query(connection, sql, new BeanListHandler<Emp>(Emp.class)); for (Emp emp : query) { System.out.println(emp); } connection.close(); } public static void testArray() throws SQLException { connection = MySQLDBUtil.getConnection(); String sql = "select * from emp"; QueryRunner runner = new QueryRunner(); Object[] object = runner.query(connection, sql, new ArrayHandler()); for (Object o : object) { System.out.println(o); } connection.close(); } public static void testArrayList() throws SQLException { connection = MySQLDBUtil.getConnection(); String sql = "select * from emp"; QueryRunner runner = new QueryRunner(); List<Object[]> query = runner.query(connection, sql, new ArrayListHandler()); for (Object[] objects : query) { System.out.println(objects[0]+"---"+objects[1]); } connection.close(); } public static void testMap() throws SQLException { connection = MySQLDBUtil.getConnection(); String sql = "select * from emp"; QueryRunner runner = new QueryRunner(); Map<String, Object> query = runner.query(connection, sql, new MapHandler()); Set<Map.Entry<String, Object>> entries = query.entrySet(); for (Map.Entry<String, Object> entry : entries) { System.out.println(entry.getKey()+"----"+entry.getValue()); } connection.close(); } public static void testSaclarHander() throws SQLException { connection = MySQLDBUtil.getConnection(); String sql = "select count(1) from emp"; QueryRunner runner = new QueryRunner(); Object query = runner.query(connection, sql, new ScalarHandler<>()); System.out.println(query); connection.close(); } //自定义 public static void testMyHander() throws SQLException { connection = MySQLDBUtil.getConnection(); String sql ="select * from emp where empno = ?"; QueryRunner runner = new QueryRunner(); Emp emp = runner.query(connection, sql, new ResultSetHandler<Emp>() { @Override public Emp handle(ResultSet resultSet) throws SQLException { if(resultSet.next()){ Emp e = new Emp(); e.setEmpno(resultSet.getInt("empno")); e.setEname(resultSet.getString("ename")); return e; } return null; } },7369); System.out.println(emp); connection.close(); } public static void insert() throws SQLException { String sql = "insert into emp(empno,ename) values(?,?)"; connection = MySQLDBUtil.getConnection(); QueryRunner queryRunner = new QueryRunner(); queryRunner.update(connection,sql,1234,"cmz"); connection.close(); } public static void update() throws SQLException { String sql = "update emp set ename=? where empno = ?"; connection = MySQLDBUtil.getConnection(); QueryRunner queryRunner = new QueryRunner(); queryRunner.update(connection,sql,"leco",1234); connection.close(); } public static void delete() throws SQLException { String sql = "delete from emp where empno=?"; connection = MySQLDBUtil.getConnection(); QueryRunner queryRunner = new QueryRunner(); queryRunner.update(connection,sql,1234); connection.close(); } public static void main(String[] args) throws SQLException { // testQuery(); // testList(); // testArray(); // testArrayList(); // testMap(); // testSaclarHander(); // testMyHander(); // insert(); // update(); delete(); } }