小汤学编程之JDBC番外篇——DBUtil工具类
一、编写
在学完dbutils框架和DataSource连接池后,我们已经可以较轻松的查询和操作数据库了,但是每次进行查询和操作时,都需要配置数据库连接相关信息、获取连接池、等一系列重复的操作,故我们可以创建DBUtil工具类来帮我们进一步简化操作。
如下:
public class DBUtil {// 通过Properties工具类获取连接配置信息private static String DRIVER = PropertiesUtil.readProerties("src/homework/task1.properties", "DRIVER");private static String URL = PropertiesUtil.readProerties("src/homework/task1.properties", "URL");private static String USER = PropertiesUtil.readProerties("src/homework/task1.properties", "USER");private static String PWD = PropertiesUtil.readProerties("src/homework/task1.properties", "PWD");// 创建连接池static DruidDataSource ds = new DruidDataSource();// 声明 dbutils框架的 QueryRunner 对象private static QueryRunner qr;// 初始化static {ds.setUrl(URL);ds.setUsername(USER);ds.setPassword(PWD);ds.setDriverClassName(DRIVER);qr = new QueryRunner(ds);}// 增、删、改 数据public static int update(String sql, Object... o) {try {return qr.update(sql, o);} catch (SQLException e) {e.printStackTrace();}return 0;}// 查询一行为Bean对象,并返回public static <T> T toBean(String sql, Class<T> clazz, Object... o) {try {BasicRowProcessor brp = new BasicRowProcessor(new GenerousBeanProcessor());return qr.query(sql, new BeanHandler<T>(clazz, brp), o);} catch (SQLException e) {e.printStackTrace();}return null;}// 查询一行封装成Map,并返回public static <T> Map<String, Object> toMap(String sql, Object... o) {try {return qr.query(sql, new MapHandler(), o);} catch (SQLException e) {e.printStackTrace();}return null;}// 查询多行为Bean对象,放在List集合里并返回public static <T> List<T> toList(String sql, Class<T> clazz, Object... o) {try {BasicRowProcessor brp = new BasicRowProcessor(new GenerousBeanProcessor());return qr.query(sql, new BeanListHandler<T>(clazz, brp), o);} catch (SQLException e) {e.printStackTrace();}return null;}// 查询多行,每行封装成Map,最终整体封装成List并返回public static <T> List<Map<String, Object>> AllList(String sql, Object... o) {try {return qr.query(sql, new MapListHandler(), o);} catch (SQLException e) {e.printStackTrace();}return null;}
}
上面DBUtil工具类代码里只写了一些常用的查询和操作数据库数据的方法,还有一些不常用的方法待添加。
二、使用
增删改
以新增为例,删改与之类似:
// 新增数据 返回受影响的行数
int i = DBUtil.update("INSERT into student VALUES (null,?,?,?)",name,pwd,age);
查询
以 .toMap() 方法为例,其他方法与之类似:
// 查询一行数据并封装成Map,并返回
Map<String, Object> map = DBUtil.toMap("select * from shopinfo where stu_id = ?", 001);
小汤学编程之JDBC番外篇——DBUtil工具类相关推荐
- 小汤学编程之JAVA番外篇——Properties工具类
一.编写 通过Java基础的学习,我们了解了Properties这种文本格式,Java程序通过专门的API可以很方便的与之进行交互.但是我们每次对Properties进行写入或读取时都要创建I/O流来 ...
- 小汤学编程之JDBC(一)——JDBC概述和快速入门
一.JDBC概述 1.概念 2.作用 二.JDBC快速入门 1.实现步骤 2.查询数据和操作数据 3.SQL注入 4.事务管理 5.Statement与Prep ...
- 小汤学编程之JDBC(二)——dbutils框架和DataSource连接池
一.dbutils框架 1.介绍 2.新增/删除/修改 3.各种查询 4.扩展:Bean中属性名与数据表列名的映射 二.DataSource连接池 1.获取DataSource ...
- 小汤学编程之JAVA基础day02——数据类型、Scanner类的使用
一.JAVA的数据类型 1.变量 2.常量 3.基本数据类型 4.引用数据类型 5.数据类型转换 二.Scanner类的使用 1.作用 2.引入 3 ...
- 小汤学编程之JavaEE学习day05——会话管理、文件上传与下载、Ajax
一.会话管理 1.HTTP协议 2.会话的概念 3.会话跟踪技术 4.会话跟踪技术分类(四种) 二.文件上传与下载 1.上传 2.下载 3.上传和下载合并优化成 ...
- 小汤学编程之JavaEE学习day08——Maven
一.Maven介绍 1.什么是Maven 2.Maven的功能 3.什么是构建 4.项目的构建方式 二.Maven的安装 1.下载 2.安装 3.配置 ...
- 小汤学编程之JavaEE学习day01——HTTP简介、B/S与C/S应用、连接的建立与断开、Tomcat
一.HTTP简介 1.HTTP请求报文 2.HTTP响应报文 二.B/S与C/S应用 三.连接的建立与断开 1.连接的建立(三次握手) 2.断开连接(四次挥手) 四.连接的建立与断开 ...
- 小汤学编程之MySQL经典例题——表的创建与查询
题目: 会员类型表UserTypeInfo [系统管理员-管理会员 店主-卖家 普通会员-买家] 类型编号 typeId int 主键 自增长 类型名 typeName varchar(20) 不能为 ...
- 小汤学编程之JAVA经典例题——嵌套集合
题目: 有一个记事本,能记录周一到周天,每天做的所有事情和事情的次数,周而复始.小明在这个记事本上记录了3周,内容如下: 第一周 ·周一:学java,逛街 ·周二:打台球,旅游 ·周三:溜冰,吃烧烤 ...
最新文章
- JSON入门基础知识
- give root password for maintenance 启动异常的解决
- 2018 hncpc 部分题
- 电机与拖动,直流他励电动机的特性测试实验报告,江南大学自动化
- matlab cd参数,MATLAB变量参数列表​
- python3.8.4rc1_Python3.8.4rc1 官方正式版
- corosync+pacemaker来实现http服务的高可用性
- Laravel5.4 导出Excel表格
- 【Python实例第32讲】一个分类分数的置换检验
- 车牌识别-基于模板匹配
- 罗尔定理、拉格朗日中值定理和柯西中值定理和用他们证明不等式、
- 音视频技术开发周刊 | 251
- java手风琴代码_[Java教程]18款jquery抽屉式手风琴导航特效代码
- 订单和订单详情的一对一 ,一对多映射
- CAD中插入外部参照字体会变繁体_知道这些技巧-轻松攻克CAD所有困难
- 记录今天解决的一个poi的问题
- 申请TexturePacker序列号
- python爬虫(6)——Selenium的使用
- GlobalMapper20如何生成经纬网格、标准图幅(1:100万标准分幅)
- 锚点定位 跳转到指定位置 回到顶部功能