JDBC知识点/第六部分Apache-DBUtils实现CRUD操作

#2020最新的JDBC学习路线,最全的JDBC知识点/第六部分Apache-DBUtils实现CRU == 写在前面:本博客是JDBC第一部分,JDBC学习路线目录为:== [Ω ** JDBC总目录* ](https://blog.csdn.net/weixin_44392716/article/details/104302226) 欢迎大家一起讨论,如有错误,敬请指正*

@ [toc](目录)

6 Apache-DBUtils实现CRUD操作

6.1什么是Apache-DBUtils

  • 阿帕奇是世界使用排名第一的网络服务器软件。-DBUtils是阿帕奇提供的工具类,封装了JDBC的某些操作,可以使操作简化.- == 我们前几篇博客所有的案例其实是自己实现了DBUtils中的部分方法==

6.1.1 Dbutils

  • DbUtils:提供如关闭连接,装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的主要方法如下: - **公共静态无效接近(…)抛出值的java.sql中中中中的SQLException **:DbUtils类提供了三个重载的关闭方法这些方法检查所提供的参数不是空,如果不是的话,它们就关闭了连接,语句和ResultssSet。):这-公共静态无效的commitAndClose(引发州连接)引发的SQL异常:使用提交连接-一类方法完全能在连接,语句和结果集为NULL的情况下避免关闭,可以隐藏一些在程序中抛出事务的SQLEeception的事务,,然后关闭连接-公共静态无效commitAndCloseQuietly(德克萨斯州连接):提交提交连接,然后关闭连接,并在关闭时不触发SQL异常。的SQLException:允许康恩为空,因为方法内部必要判断–

公共静态无效rollbackAndClose(连接conn)引发SQLException-rollbackAndCloseQuietly(连接)-公共静态布尔值loadDriver(java.lang.String driverClassName):这一方装载并注册JDBC驱动程序,如果成功就返回true。使用该方法,你不需要捕捉这个异常ClassNotFoundException。

6.1.2 QueryRunner

  • 该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。- QueryRunner类提供了两个构造器: -其他的构造器 - 需要一个javax。 sql.DataSource来作参数的构造器- QueryRunner类的主要方法: - 更新 - 公众诠释更新(康涅狄格州的连接,SQL字符串,对象… PARAMS)抛出的SQLException:用来执行一个更新(插入,更新或删除)操作。 - 插入 - 公共< Ť > Ť插入(连接康恩,字符串SQL,ResultSetHandler < Ť >

rsh, Object… params) throws SQLException:只支持INSERT语句,其中 rsh - The handler used to create the result object from the ResultSet of auto-generated keys. 返回值: An object generated by the handler.即自动生成的键值

  • 批处理
    • public int[] batch(Connection conn,String sql,Object[][] params)throws SQLException: INSERT, UPDATE, or DELETE语句
    • public T insertBatch(Connection conn,String sql,ResultSetHandler rsh,Object[][] params)throws SQLException:只支持INSERT语句
  • 查询
    • public Object query(Connection conn, String sql, ResultSetHandler rsh,Object… params) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。

6.2增

	/*增加数据*/
	public void testInsert() throws SQLException {
		//使用QueryRunner
        QueryRunner queryRunner = new QueryRunner();
        //获取链接
        Connection conn = JDBCUtils.getConnectionDruid();
        String sql = "INSERT INTO customers(name,email,birth)values(?,?,?)";
        queryRunner.update(conn,sql,"蔡徐坤","[email protected]","1999-09-09");
        //执行
        JDBCUtils.closeResource(conn,null);
    }

6.3删

public void testDelete() throws Exception {
	QueryRunner runner = new QueryRunner();
	Connection conn = JDBCUtils.getConnection3();
	String sql = "delete from customers where id < ?";
	int count = runner.update(conn, sql,3);

	System.out.println("删除了" + count + "条记录");
		
	JDBCUtils.closeResource(conn, null);

}

6.4查

	/*查询一条数据*/
	public void testQueryOne() throws SQLException {
        QueryRunner queryRunner = new QueryRunner();
        Connection conn = JDBCUtils.getConnectionDruid();
        String sql = "SELECT id,name,email,birth FROM customers WHERE id=?";
        BeanHandler<Customer> handler = new BeanHandler<>(Customer.class);
        Customer customer = queryRunner.query(conn, sql, handler, 23);
        JDBCUtils.closeResource(conn,null);
        System.out.println(customer);
    }
	/*查询多条数据*/
    public void testQueryTwo() throws SQLException {
        QueryRunner queryRunner = new QueryRunner();
        Connection conn = JDBCUtils.getConnectionDruid();
        String sql = "SELECT id,name,email,birth FROM customers WHERE id;
        BeanListHandler<Customer> handler = new BeanListHandler<>(Customer.class);
        List<Customer> list = queryRunner.query(conn, sql, handler, 23);
        JDBCUtils.closeResource(conn,null);
        list.forEach(System.out::println);
    }

的的java / *查询特殊数据* / 公共无效testQueryThree()抛出的的SQLException { QueryRunner queryRunner =新QueryRunner(); 连接康恩= JDBCUtils.getConnectionDruid(); 字符串SQL =“从客户中选择COUNT( *)条”; ScalarHandler处理程序=新的ScalarHandler(); println(计数); long count =(长)queryRunner。查询(conn,sql,handler);系统。出来。}

你可能感兴趣的:(mysql,java,JDBC)