2020-10-08

    科技2025-12-20  11

    DBUtils如何使用

    一、准备1.关于“Eclipse” (1)下载DBUtils (2下载后选择相应的路径进行解压 (3)在Eclipse中进行路径配置 (i)新建项目: 打开Eclispe->文件->新建->java 项目->取名“DBUtils”->点击完成 (ii)导入“DBUtils” 在项目名称(DBUtils)后右击,选择“构建路径”,然后点击“配置构建路径” 找到之前下载的“DBUtils”,选择其路径 点击“打开”,出现下面的结果 点击下方的“应用并关闭”,最终可在项目中的“引用的库”,看到刚刚导入的“DBUtils”,如下图所示 (iii)在该项目(DBUtils)下,新建一个类(Test1)

    2.连接数据库(Eclipse连接MySQL)(操作与 1.类似) (1)下载 http://t.cn/R3UqX5q (2)导入“mysql-connector-java-8.0.21.jar"

    3.关于“MySQL” (1)打开“MySQL Workbench 8.0 CE”,新建一个“DB”的数据库,点击“ok” 点击“DB”,输入密码(安装时自己设定的) (2)创建数据库 (i)在左下角schema下方区域鼠标右键选择create schema,即可创建数据库命名为“Student” (ii)点击“Apply” 再次点击“Apply”,出现“student”数据库 (3)建立表 表格命名为“me”,创建“ID”,“NAME”,“AGE”信息 点击“Apply” 再次点击“Apply” 点击finsh (4)初始化表 输入插入语句 insert into me values(101,‘章叁’,18);

    二、初步测试“连接数据库” 1.代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Test1 { public static void main(String args[]) { StringdriverClassName=“com.mysql.cj.jdbc.Driver”; Stringurl=“jdbc:mysql://localhost:3306/student?serverTimezone=UTC”; String userName = “root”; String password = “123456”; Connection conn = null; try { Class.forName(driverClassName); conn = DriverManager.getConnection(url, userName, password); System.out.println(“获取数据库连接成功!”); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(“select * from me”); // me 为表的名称 while (rs.next()) { System.out.print(rs.getInt(“ID”)); System.out.println(rs.getString(“NAME”)); } } catch (Exception e) { e.printStackTrace(); } }}

    三、DBUtils的类1.QueryRunner Dbutils的核心类之一,它显著的简化了SQL查询 它的方法有: update(Connection conn, String sql, Object[] params):被用来执行插入、更新或删除(DML)操作。 2.查询 (1)ArrayHandler 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值 (2)ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。 (3)BeanHandler 将结果集中第一条记录封装到一个指定的javaBean中。 (4)BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中 (5)ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中四、DButils使用1.代码(对数据进行插入、更新、删除、查找)import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List;

    import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.ArrayHandler; import org.apache.commons.dbutils.handlers.ColumnListHandler; public class Test1 { public static void main(String args[]) { insert();//插入 update();//更新 delete();//删除 select();//查找 } public static void insert() { Connection conn=connectDB(); // 获取数据库连接 QueryRunner runner=new QueryRunner();//QueryRunner是Dbutils的核心类之一,它显著的简化了SQL查询 String sql=“insert into me(ID,NAME,AGE)values(102,‘齐思’,18)”; int num; try { num=runner.update(conn,sql); System.out.println(“插入了”+num+“组数据”); }catch(SQLException e) { e.printStackTrace(); } DbUtils.closeQuietly(conn); // 关闭数据库连接 }

    public static void update() { Connection con=connectDB(); QueryRunner runner=new QueryRunner(); String sql="update me set NAME='章叁2'where ID=101"; try { int num=runner.update(con,sql); System.out.println("更新了"+num+"组数据"); }catch(SQLException e) { e.printStackTrace(); } DbUtils.closeQuietly(con); // 关闭数据库连接 } public static void delete() { Connection con=connectDB(); QueryRunner runner=new QueryRunner(); String sql="delete from me where ID=103"; try { int num=runner.update(con,sql); System.out.println("删除了"+num+"组数据"); }catch(SQLException e) { System.out.println("无法找到改组数据,删除失败"); } DbUtils.closeQuietly(con); // 关闭数据库连接 } public static void select() { Connection con=connectDB(); try { QueryRunner qr = new QueryRunner(); String sql = "select ID,NAME from me where AGE = ?"; //注意sql语句中的筛选项(username,password)一定要包括下列list中的参数项(username) Object [] param = {18}; List<Object> list = qr.query(con,sql,new ColumnListHandler<Object>("NAME"),param); //若没有查询到则list.size()=0 for (Object o : list){ System.out.println(o + "\t"); } }catch(Exception e) { e.printStackTrace(); } DbUtils.closeQuietly(con); } public static Connection connectDB() { String driverClassName = "com.mysql.cj.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/student?serverTimezone=UTC"; String userName = "root"; String password = "123456"; Connection conn = null; try { Class.forName(driverClassName); conn = DriverManager.getConnection(url, userName, password); System.out.println("\n获取数据库连接成功!"); } catch (Exception e) { e.printStackTrace(); } return conn; }

    }

    Processed: 0.045, SQL: 9