获取数据库连接

static Connection con=JdbcUtils.MyUtils();//这个连接类静态获取要自己定义

插入

public static void insert() throws SQLException{
QueryRunner qr=new QueryRunner();
String sql="insert into sort(sname,sprice,sdesc) values (?,?,?)";
   //用数组封装插入数据
Object []obj={"小米手机",,"大甩卖"};
     //obj是数组,位置要求插入的是可变参数,这里用数组来满足
int re=qr.update(con,sql,obj);
System.out.println(re);
DbUtils.close(con);
}

修改

public static void update() throws SQLException{
QueryRunner qr=new QueryRunner();
String sql="update sort set sname=?,sprice=?,sdesc=? where sid=?";
Object [] obj={"花",,"热卖",};
int r=qr.update(con,sql,obj);
System.out.println(r);
DbUtils.close(con);
}

删除

public static void delete() throws SQLException{
QueryRunner qr=new QueryRunner();
String sql="delete from sort where sid=?";
int re=qr.update(con,sql,11);
System.out.println(re);
DbUtils.close(con);
}

查询--查询有多种处理结果集的方式,这里写8种

ArrayHandler

将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

ArrayListHandler

将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。

BeanHandler

将结果集中第一条记录封装到一个指定的javaBean中。

BeanListHandler

将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中

ColumnListHandler

将结果集中指定的列的字段值,封装到一个List集合中

ScalarHandler

它是用于单数据。例如select count(*) from 表操作。

MapHandler

将结果集第一行封装到Map集合中,Key 列名, Value 该列数据

MapListHandler

将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合

private static void MapListHandler() throws SQLException {
/*
* 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合
*/
QueryRunner qr=new QueryRunner();
String sql="select * from sort";
List<Map<String,Object>> result=qr.query(con, sql,new MapListHandler());
for(Map<String,Object> map:result){
for(String key:map.keySet()){
System.out.print(key+"..."+map.get(key)+" ");
}
System.out.println();
}
DbUtils.close(con);
}
private static void MapHandler() throws SQLException {
/*
* 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
*/
QueryRunner qr=new QueryRunner();
String sql="select * from sort";
Map<String,Object> result=qr.query(con, sql,new MapHandler());
for(String key:result.keySet()){
System.out.print(key+"..."+result.get(key));
}
DbUtils.close(con); }
private static void ScalarHandler() throws SQLException {
/*
* 它是用于单数据。例如select count(*) from 表操作
*/
QueryRunner qr=new QueryRunner();
String sql="select count(*) from sort";
Object obj=qr.query(con, sql,new ScalarHandler<Object>());
System.out.println(obj);
DbUtils.close(con); }
private static void ColumnListHandler() throws SQLException {
/*
* 将结果集中指定的列的字段值,封装到一个List集合中
*/
QueryRunner qr=new QueryRunner();
String sql="select * from sort";
//返回的是一个String
List<String> result=qr.query(con, sql,new ColumnListHandler<String>("sname"));
for(Object obj:result){
System.out.println(obj);
}
DbUtils.close(con); }
private static void BeanListHandler() throws SQLException {
/*
* 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
*/
QueryRunner qr=new QueryRunner();
String sql="select * from sort";
//返回的是List集合
List<Sort> result=qr.query(con, sql,new BeanListHandler<Sort>(Sort.class));
for(Sort s:result){
System.out.println(s);
}
DbUtils.close(con); }
private static void BeanHandler() throws SQLException {
/*
* 将结果集中第一条记录封装到一个指定的javaBean中
*/
QueryRunner qr=new QueryRunner();
String sql="select * from sort";
//通过反射获得一个Sort对象,加了Sort的泛型
Sort s=qr.query(con, sql,new BeanHandler<Sort>(Sort.class));
//因为重写了toString(),可直接打印
System.out.println(s);
DbUtils.close(con);
}
private static void ArrayListHandler() throws SQLException {
/*
* 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中
*/
QueryRunner qr=new QueryRunner();
String sql="select * from sort";
//返回的是一个list,每条list是一个Object数组
List<Object[]> result=qr.query(con,sql,new ArrayListHandler());
//这里用到双重for循环遍历
for(Object[] obj:result){
for(Object o:obj){
System.out.print(o);
}
System.out.println();
}
DbUtils.close(con); }
private static void ArrayHandler() throws SQLException {
/*
* 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
*/
QueryRunner qr=new QueryRunner();
String sql="select * from sort";
//返回的是一个Object数组
Object [] obj=qr.query(con,sql,new ArrayHandler());
for(Object o:obj){
System.out.print(o);
}
DbUtils.close(con); }

Druid连接池可参考:

https://blog.csdn.net/mollen/article/details/82556358

DButils实现增删查改的更多相关文章

  1. JDBC终章- 使用 DBUtils实现增删查改- C3P0Utils数据源/QueryRunner runner连接数据源并执行sql

    JDBC终章- 使用 DBUtils实现增删查改 1.数据库结构 Create Table CREATE TABLE `user` ( `id` ) NOT NULL AUTO_INCREMENT, ...

  2. 利用dbutils工具实现数据的增删查改操作(dbutis入门)

    一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...

  3. 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  4. 3.EF 6.0 Code-First实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...

  5. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

  6. 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  7. jdbc的实例应用:增删查改实现

    //在jdbc中进行增删查改 //查看所有 public static void findAll() { String url = "jdbc:mysql://localhost:3306/ ...

  8. 用javascript实现html元素的增删查改[xyytit]

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. hibernate基础增删查改简单实例

    hibernate 基础理论知识网上很多,可以百度和google.这里不做多的介绍,以一个User表来开展例子 建一个web-project 我这里用了junit单元测试环境来进行增删查改的测试,别的 ...

随机推荐

  1. Matlab Euler's method

    % matlab script to test efficiency of % Euler's method, classical Runge-Kutta, and ode45 % on Arenst ...

  2. linux中cut、printf、awk、sed命令

    cut.printf.awk.sed在linux中都是用来处理文本的命令,接下来一个一个看. 一.cut命令 cut [选项] 文件名 选项: 主要使用一下两个参数,若是只使用 -f 则默认的分割符为 ...

  3. ImmediateFunc.js

    (function(){ var days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] var today = new Date() var msg = ...

  4. php soapclient 超时 设置

    用php的soapclient,默认是60秒.可在php.ini里配置, 重启APache 或者在PHP代码里做设置 ini_set('default_socket_timeout', 300);// ...

  5. linux学习笔记-目录结构(2)

    2./usr的意义与内容 依据FHS的基本定义,/usr里面放置的数据属于可分享的与不可变动的. usr是UNIX Software Resource的缩写,即UNIX操作系统软件资源所放置的目录,而 ...

  6. 2017-12-22 日语编程语言"抚子"-第三版实现初探

    前文日语编程语言"抚子" - 第三版特色初探仅对语言的语法进行了初步了解. 之前的语言原型实现尝试(如编程语言试验之Antlr4+JavaScript实现"圈4" ...

  7. 【代码笔记】Web-HTML-颜色

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  8. CloudSim——云计算仿真软件概述

    CloudSim是由澳大利亚墨尔本大学的网格实验室和Gridbus项目宣布推出的云计算仿真软件. CloudSim是做什么的呢?可以简单理解为一个帮助研究.开发.测试的工具,如虚拟机资源分配算法.节能 ...

  9. C#中禁止跨线程直接访问控件

    C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它.此时它将会在内部调用ne ...

  10. Linux 硬盘格式化、分区、挂载、卸载、删除分区,Linux重新调整分区

    目录 Linux 硬盘格式化.分区.挂载.卸载.删除分区 0. 查看挂载情况 1. 查看硬盘信息 2. 创建分区 3. 查看磁盘信息 4. 格式化分区 5. 将分区信息写入fstab, 设置开机自动挂 ...