使用dbutils完成curd操作

xiaoxiao2021-02-28  130

dbutils: 是apache组织的一个工具类,jdbc的框架,更方便我们使用 使用步骤: 1.导入jar包(commons-dbutils-1.4.jar) 2.创建一个queryrunner类 queryrunner作用:操作sql语句 构造方法: new QueryRunner(Datasource ds);    // 这个DataSource的对象引用需要自己创建一个DataSourceUtils工具类,然后直接调用里面的静态方法

3.编写sql 4.执行sql query(..):执行r操作 update(...):执行cud操作

核心类或接口

QueryRunner:类名 作用:操作sql语句 构造器: new QueryRunner(Datasource ds); 注意: 底层帮我们创建连接,创建语句执行者 ,释放资源. 常用方法: query(..):

update(..):

// CURDDemo.java package com.dbutils.curd; import java.sql.SQLException; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.junit.Test; import com.utils.DataSourceUtils; public class CURDDemo { @Test public void insert() throws SQLException { // 1.创建queryrunner类 QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()) ; // 2.编写sql String sql = "insert into category values(?,?)" ; // 3.执行sql qr.update(sql, "c201","厨房电器") ; } @Test public void update() throws SQLException { QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()) ; String sql = "update category set cname = ? where cid = ?"; qr.update(sql,"Tcl","c001") ; } } /** * DataSourceUtils.java * 为CURDDemo类中QueryRunner函数提供引用参数 * 并且在底层自动创建连接,创建语句执行者,释放资源 * */ package com.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class DataSourceUtils { private static ComboPooledDataSource ds = new ComboPooledDataSource() ; /** * 获取数据源 * @return 连接池 */ public static DataSource getDataSource() { return ds ; } /** * 获取连接 * @return 连接 * @throws SQLException */ public static Connection getConnection() throws SQLException { return ds.getConnection() ; } /** * 释放资源 * @param conn * @param st * @param rs */ public static void closeResource(Connection conn,Statement st,ResultSet rs) { closeRs(rs) ; closeSt(st) ; closeConn(conn) ; } /** * 释放连接 * @param conn */ public static void closeConn(Connection conn) { if(conn != null) { try { conn.close() ; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn = null ; } } /** * 释放语句执行者 * @param st */ public static void closeSt(Statement st) { if(st != null) { try { st.close() ; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } st = null ; } } /** * 释放结果集 * @param rs */ public static void closeRs(ResultSet rs) { if(rs != null) { try { rs.close() ; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } rs = null ; } } }

转载请注明原文地址: https://www.6miu.com/read-43421.html

最新回复(0)