java学习笔记之DBUtils工具类

DBUtils工具类

一.介绍

  DBUtils是Apache组织开源的数据库工具类。

二.使用步骤

  ①.创建QueryRunner对象

  ②.调用update()方法或者query()方法执行sql语句

三.构造方法及静态方法

  QueryRunner类

  1.构造方法

    ①.无参构造

      QueryRunner qr =new  QueryRunner();

     使用无参构造的时候,调用update方法和query方法时就需要使用带Connection 类型参数的重载形式

    ②.有参构造

      QueryRunner  qr= new QueryRunner(DataSource  dataSource);

      这个参数是连接池对象

  2.静态方法

    ①.int  update(Connection  con ,String sql ,Param);

      该方法用于增删改语句的操作

      参数介绍:

      参数一:连接池对象(这个在无参构造的时候使用)

      参数二:sql语句

      参数三:可变参数(就是sql占位符的值)

      返回值:int类型的  返回受影响的行数

   简单update  demo

 1 public class Demo {
 2     public static void main(String[] args) throws Exception {
 3         /*
 4          * 演示有参构造的update()方法
 5          *
 6          * 首先得导入jar包
 7          * 配置好C3P0的配置文件与准备好C3P0工具类
 8          * 然后创建QueryRunner对象
 9          * 调用update方法
10          * 最后处理结果
11          */
12         QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
13         int re = qr.update("update user set name=? where uid=?","张三",2);
14         if(re>0){
15             System.out.println("修改成功");
16         }else {
17             System.out.println("修改失败");
18         }
19     }
20 }

  附上简单的C3P0工具类

 1 public class C3P0Utils {
 2     private  static DataSource dataSource=new ComboPooledDataSource();
 3     /**
 4      * 获得DataSource实现类对象
 5      * @return
 6      */
 7     public static DataSource getDataSource(){
 8         return dataSource;
 9     }
10     /**
11      * 获得连接
12      * @return
13      * @throws Exception
14      */
15     public static Connection getConnection()throws Exception{
16         return dataSource.getConnection();
17     }
18 }

  ②.query(Connection con , String sql  ,Param ...)

      该方法用于出查询操作

      参数介绍:

        参数一:Connection  数据库连接对象, 使用带参构造时可以不用

        参数二:sql语句      

        参数三:表示对结果集的处理方式 (ResultSetHandler接口)

            ArrayHandler: 表示将结果集第一行的数据存入数组
            ArrayListHandler 将结果集每一行的数据存入数组,多个数组存入集合 List<Object[]>

            BeanHandler 表示将结果集第一行的数据存入Java Bean对象
            BeanListHandler 表示将结果集每一行的数据存入Java Bean对象 ,多个对象存入集合

            ColumnListHandler 表示将某一列的数据存入集合


            MapHandler 表示将结果集第一行的数据存入Map集合 :键:列名 值:列的值
            MapListHandler 表示将结果集每一行的数据存入Map集合 多个Map存入List集合 List<Map<,>>

            ScalarHandler 获取一个值: count(*) sum(price)

       参数四:可变参数(就是sql占位符的值)

      使用BeanListHandler处理方式的demo:

1     public void demo1() throws Exception{
2         QueryRunner qr = new QueryRunner(MyC3P0Utils.getDataSource());
3         List<Car> list = qr.query("select * from car where price<20 order by price desc", new BeanListHandler<>(Car.class));
4         for (Car car : list) {
5             System.out.println(car);
6         }
7
8     }

      javaBean类的编写:

 1 public class Car {
 2     private  int  cid;
 3     private String  cname;
 4     private String  company;
 5     private String grade;
 6     private double price;
 7     @Override
 8     public String toString() {
 9         return "Car [cid=" + cid + ", cname=" + cname + ", company=" + company + ", grade=" + grade + ", price=" + price
10                 + "]";
11     }
12     public int getCid() {
13         return cid;
14     }
15     public void setCid(int cid) {
16         this.cid = cid;
17     }
18     public String getCname() {
19         return cname;
20     }
21     public void setCname(String cname) {
22         this.cname = cname;
23     }
24     public String getCompany() {
25         return company;
26     }
27     public void setCompany(String company) {
28         this.company = company;
29     }
30     public String getGrade() {
31         return grade;
32     }
33     public void setGrade(String grade) {
34         this.grade = grade;
35     }
36     public double getPrice() {
37         return price;
38     }
39     public void setPrice(double price) {
40         this.price = price;
41     }
42     public Car(int cid, String cname, String company, String grade, double price) {
43         super();
44         this.cid = cid;
45         this.cname = cname;
46         this.company = company;
47         this.grade = grade;
48         this.price = price;
49     }
50     public Car() {
51         super();
52         // TODO Auto-generated constructor stub
53     }
54
55 }

   

原文地址:https://www.cnblogs.com/xuzhaocai/p/8207268.html

时间: 2024-10-06 12:28:01

java学习笔记之DBUtils工具类的相关文章

Java学习笔记七——数组工具类Arrays

数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> asList(T... a) 作用:将指定数组或数组元素,转换成固定大小的List. 用法: String[] strArr = { "aaa", "bbb", "vvv" }; //用法1:参数是数组引用 List<String> li

java学习笔记07--日期操作类

java学习笔记07--日期操作类 一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. [java] view plaincopy public class T { public static void main(String[] args) { Date date  = new Date(); System.out.println("当前日期:"+date); //当前日期:Thu May 16 23:00:57 CST 

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空

java学习-加载.properties工具类

javaWeb项目,要加载xxx.properties或其它如.txt, .md后缀的文本文件 文本内容有两种格式 key:value或者key=value 诸如Spring框架,Jfinal框架,都是使用java.util.Properties类来加载文本配置文件 Poperties类是按行读取key和value,所以我们写配置文件时,只能一行一个key/value键值对 这些配置文件一般会在编译时打包到WEB-INF/classes/文件夹下 我们要加载时就要通过使用下面方法获取InputS

疯狂java学习笔记之面向对象-定义类、方法、构造器

Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. java程序中,类是最小的程序单位 - 所有的java程序都必须从定义类开始 定义类的语法格式: [修饰符]  class  类名{ //0 ~ N 个 Field 定义 //0 ~ N 个 方法定义 //0 ~ N个 构造器定义 } 一个类中最多只能出现五种成分:Field.方法.构造器 一个类最常见

java学习笔记——大数据操作类

java.math包中提供了两个大数字操作类:BigInteger(大整数操作类) BigDecimal(大小数操作类). 大整数操作类:BigInteger BigInteger类构造方法:public BigInteger(String val) 常用方法:public BigInteger add(BigInteger val) public BigInteger subtract(BigInteger val) public BigInteger multiply(BigInteger

Java学习笔记五:复用类

当我们在使用第三方或者其他人已经写好的类时,通常有两种方法: (1).组合:在新的类中产生现有类的引用. (2).继承:按照现有类的类型创建新类.   1.组合 简单理解就是新类中,创建一个变量,变量的引用为现有类. 我们在很多场景下都是用到组合,如: public class Lesson_04_Extend { private Extend1 extend1; // 组合方式,创建成员变量(UML 组合关系) public void print(Extend1 extend2) // (UM

Java学习笔记—第七章 类的深入解析

第七章 类的深入解析 1. 继承 1.1 类继承的方法:在Java中,子类对父类的继承是在类的声明中使用extends关键字来指明的.其一    般格式为:[类修饰符] class <子类名> extends <父类名>{ 类体内容 }.一个类只能直接继承一个    父类,一个父类可以有多个子类. 1.2 成员变量的继承和隐藏:基于父类创建子类时,子类可以继承父类的成员变量和成员方法.但是,     如果在父类和子类中同时声明了一个同名变量,则这两个变量在程序运行时同时存在.即:父

Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)

1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) { getCount("IamHandsome666"); } public static void getCount(String str) { int upper = 0; int lower = 0; int digit = 0; for (int i = 0; i < str