DButils实现增删查改
获取数据库连接
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实现增删查改的更多相关文章
- JDBC终章- 使用 DBUtils实现增删查改- C3P0Utils数据源/QueryRunner runner连接数据源并执行sql
JDBC终章- 使用 DBUtils实现增删查改 1.数据库结构 Create Table CREATE TABLE `user` ( `id` ) NOT NULL AUTO_INCREMENT, ...
- 利用dbutils工具实现数据的增删查改操作(dbutis入门)
一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 3.EF 6.0 Code-First实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- jdbc的实例应用:增删查改实现
//在jdbc中进行增删查改 //查看所有 public static void findAll() { String url = "jdbc:mysql://localhost:3306/ ...
- 用javascript实现html元素的增删查改[xyytit]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- hibernate基础增删查改简单实例
hibernate 基础理论知识网上很多,可以百度和google.这里不做多的介绍,以一个User表来开展例子 建一个web-project 我这里用了junit单元测试环境来进行增删查改的测试,别的 ...
随机推荐
- 使用idea创建一个maven工程
使用idea创建一个maven工程 一.创建maven工程 二.输入工程名 三.指定maven仓库 四.点击finish 五.修改工程结构(file->project structure) 六. ...
- react组件中的constructor和super小知识
react组件中的constructor和super小知识 1.react中用class申明的类一些小知识 如上图:类Child是通过class关键字申明,并且继承于类React. A.Child的类 ...
- 洛谷P3987 我永远喜欢珂朵莉~(set 树状数组)
题意 题目链接 Sol 不会卡常,自愧不如.下面的代码只有66分.我实在懒得手写平衡树了.. 思路比较直观:拿个set维护每个数出现的位置,再写个线段树维护区间和 #include<bits/s ...
- webpack单独打包一个less文件
需要将btn.less文件用webpack打包后,放到项目中.在网上百度了各种,遇到了很多问题,现在我将整个步骤整理如下: 1.建一个空的文件夹,命名为init_webpack,在该文件夹下运行: 这 ...
- nginx-2-nginx的反向代理
Nginx服务器的反向代理服务 nginx服务器的反向代理服务是其最常用的重要功能之一,在实际的工作当中应用广泛,涉及的指令也比较多,各类指令完成的功能也不尽相同.
- LeanCloud云引擎相关问题
(1).Windows 用户可以在 Github releases 页面 根据操作系统版本下载最新的 32 位 或 64 位 msi 安装包进行安装,安装成功之后在 Windows 命令提示符(或 P ...
- 浅谈Redis之慢查询日志
首先我们需要知道redis的慢查询日志有什么用?日常在使用redis的时候为什么要用慢查询日志? 第一个问题: 慢查询日志是为了记录执行时间超过给定时长的redis命令请求 第二个问题: 让使用者更好 ...
- [IDEA] IntelliJ IDEA 安装教程
原文地址:https://www.cnblogs.com/memento/p/9147477.html 下载地址:https://www.jetbrains.com/idea/ 本文以 64 位的 U ...
- 在Java中调用C/C++本地库
JNI是Java Native Interface的英文缩写, 中文翻译为本地调用, 自从Java 1.1开始就成为了Java标准的一部分. C/C++是系统级的编程语言, 可以用来开发任何和系统相关 ...
- [20170916]sqlplus set array最小2补充.txt
[20170916]sqlplus set array最小2补充.txt --//以前写的贴子,链接http://blog.itpub.net/267265/viewspace-1453652/--/ ...