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单元测试环境来进行增删查改的测试,别的 ...
随机推荐
- Swagger2限定接口范围
前面在使用Swagger2时遇到的坑中简单介绍了Swagger的使用. 不过默认情况下,Swagger2会把项目中的所有接口都展示在列表里,特别是你用了Springboot/SpringCloud之后 ...
- 《Head First设计模式》批注系列(一)——观察者设计模式
最近在读<Head First设计模式>一书,此系列会引用源书内容,但文章内容会更加直接,以及加入一些自己的理解. 观察者模式(有时又被称为模型-视图(View)模式.源-收听者(List ...
- HDU5293(SummerTrainingDay13-B Tree DP + 树状数组 + dfs序)
Tree chain problem Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- JQuery的事件委托;jQuery注册事件;jQuery事件解绑
一.事件 ①事件委托:就是给子元素的父元素或者祖先元素注册一个事件,但是事件的执行者是子元素,委托事件的好处是能够给动态创建出来时元素也加上事件. ②简单事件:就是给自己注册事件自己执行动态创建出来的 ...
- linux学习笔记-grub模式引导进入系统
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.设置系统启动盘所在位置 set root='hd0,msdosx' 2.手动加载内核驱动程序并配置root目录位置 linu ...
- python2&python3
1.Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi') Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print 'hi ...
- RSA key format is not supported
对接支付宝时,提示RSA错误 : 请仔细检查 : 创建支付对象时,关键字参数的名字 如果公私钥是以拼接路径的方式传递给AliPay,正确的关键字参数的名字应该如下 :
- 转载---解决 eclipse 中发布的java-web工程,jar包无法发布到tomcat 的lib下。
1.首先: Server Locations修改后会变灰,如果需要更改设置,则需要移除与Tomcat服务器关联的项目,同时,鼠标右键菜单Clean清除Tomcat服务器的状态^^就可以修改了. 此时E ...
- 网页html随机切换背景图片
首先要准备一些图像,图像的大小(无论是尺寸大小还是数据大小)要控制好,如果太大,会使用户等不及查看全图就跳出了,如果太小,又会影响页面质量. 在script中将这些图像编为一个数组,便于调用.数组的长 ...
- JavaScript大杂烩13 - 总结ECMAScript 5新功能
虽说这个标准已经出来很久了,所有的主流浏览器的最新版本也都支持了这些特性,但是很多的教程中并没有包含这个部分,这一节我们专门来总结一下这个标准中的新功能. Object的新方法 在最新的JavaScr ...