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
java学习笔记之DBUtils工具包相关推荐
- 【java学习笔记day01】运行第一个程序Helloworld!
java学习笔记day01 2.什么是软件工程师? 3.什么是软件? 4.开发软件需要计算机编程语言,计算机编程语言有很多,例如 c, c++,Java,NET,c#,php... 5.Java软件工 ...
- Java学习笔记——流程控制
Java学习笔记--流程控制 Day05 一.用户交互Scanner 1.Scanner对象 我们通过Java工具包java.util.Scanner中的Scanner类来获取用户的输入 基本语法:S ...
- JAVA学习笔记(1)【基础知识】
JAVA学习笔记DAY_1 提示:关于java系列的内容只是本人在老师的指导下和自学过程中的一些学习笔记,如果存在错误敬请批评指正! 文章目录 JAVA学习笔记DAY_1 前言 一.Java语言未来的 ...
- Java学习笔记(java基础)
Java学习笔记(第一周) Java 介绍 Java 发展方向 JVM , JDK , JRE 名词解释 Java语言的特点 Java安装 安装包的下载 配置环境变量 验证是否安装成功 Java的第一 ...
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- 准备写java学习笔记
准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267
- Java学习笔记--StringTokenizer的使用
2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...
- java学习笔记12--异常处理
java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...
最新文章
- 关于卷积神经网络的思考:将CNN视作泛函拟合
- 计算机专业2016高考录取分数线,中国科学院大学计算机科学与技术专业2016年在江苏理科高考录取最低分数线...
- brand.php dnfire.cn_能美火灾报警_能美西科姆消防报警主机如何屏蔽故障点_滁州气象...
- 发送WM_COPYDATA消息实现进程间的通信
- SAP UI5 应用开发教程之九 - 创建第一个 Component
- 《计算机应用》实践考核,《管理系统中计算机应用》实践性环节考核方案
- virtual box 针对Unable to load R3 module 解决方案
- 电脑运行VirtualBox虚拟机总是提示0x00000000错误的解决方法
- 低级问题---.net franmework安装
- php 可变变量 $$name
- rs485接口上下拉_带内部上下拉电阻的无极性rs-485接口芯片的制作方法
- VMware卸载不干净导致安装VMware报错(无法安装服务vmware Authorization server请确保你有足够的权限)
- 互联网流量的本质是什么?
- 如何基于vue开发ui组件库(heaven-ui)
- Linux互信及互信失效问题
- Docker Nginx配置(docker.io/nginx)
- Python画爱心——一颗会跳动的爱心~
- 使用nvm管理node
- 《周志明的软件架构课》学习笔记 Day15
- pmp-关键路径法之顺推和逆推
热门文章
- 不少程序员都会碰到的三个面试题
- win7系统搭建tftp服务器,Win7旗舰版如何开启TFTP服务器|开启Win7旗舰版TFTP服务器的方法...
- ffmpeg 编码如何做带宽控制输出
- Oracle11g的安装和使用
- 【linux】Linux cp命令拷贝 不覆盖原有的文件
- 【Clickhouse】Clickhouse 物化视图 MATERIALIZED VIEW
- 【Es】es修改mapping报错Validation Failed: 1: mapping type is missing
- Spark之hive的UDF自定义函数
- Linux的Open Files设置过小导致程序退出并且Unable to create new native thread
- Java中使用ProcessBuilder启动、管理应用程序