java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】

Druid连接数据库,DBUtils工具类的使用

1.在maven中添加Druid依赖

com.alibaba

druid

1.2.0

2.封装Druid连接方法

import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.util.Properties;

public class DruidCon {

private static DruidDataSource dataSource = null;

static {

InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");

Properties properties = new Properties();

try {

properties.load(is);

} catch (IOException e) {

e.printStackTrace();

}

try {

dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);

} catch (Exception e) {

e.printStackTrace();

}

}

public static Connection getDruidConnection() throws Exception {

Connection con = dataSource.getConnection();

return con;

}

}

3.使用自己写的工具类进行测试

import com.jdbc.dao.BaseDao;

import com.pyc.dao.Book;

import java.sql.Connection;

import java.util.List;

public class DruidTest01 {

public static void main(String[] args) throws Exception {

//1.连接数据库池

Connection con = DruidCon.getDruidConnection();

String sql = "select id,bname,price,publishTime from book";

List books = BaseDao.excuteSelectAll(con, Book.class, sql);

books.forEach(System.out::println);

}

}

4.使用apache的DBUtils进行测试

在maven中配置依赖

commons-dbutils

commons-dbutils

1.7

注:QueryRunner对象用来执行sql语句,ResultSetHandler的具体实现类用来存储结果集数据

ResultSetHandler的实现类:

894e21805f6b95b8ebdfa5adf869f0ce.png

import com.pyc.dao.Book;

import org.apache.commons.dbutils.DbUtils;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.BeanHandler;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import org.apache.commons.dbutils.handlers.ScalarHandler;

import java.sql.Connection;

import java.sql.SQLException;

import java.util.Date;

import java.util.List;

public class DruidTest02 {

public static void main(String[] args) {

Connection con = null;

try {

//1.获取数据库连接

con = DruidCon.getDruidConnection();

//2.创建QueryRunner对象

QueryRunner runner = new QueryRunner();

String sql = "insert into book(bname,price,publishTime) values(?,?,?)";

//3.创建对应ResultSetHandler的实现类

//创建一个BeanHandler用于存储插入数据,该实现类是存储自定义对象的

//插入一条数据

BeanHandler beanHandler = new BeanHandler(Book.class);

Book book = runner.insert(con, sql, beanHandler, "演员的自我休养", 39.9, new Date(52213165461L));

System.out.println("成功插入了" + book);

//查询一条数据

BeanHandler beanHandler2 = new BeanHandler(Book.class);

String sql2 = "select id,bname,price,publishTime from book where id=?";

Book book1 = runner.query(con, sql2, beanHandler2, 20);

System.out.println(book1);

//查询所有数据

BeanListHandler bookBeanListHandler = new BeanListHandler<>(Book.class);

String sql3 = "select id,bname,price,publishTime from book";

List bookList = runner.query(con, sql3, bookBeanListHandler);

bookList.forEach(System.out::println);

//特殊查询

ScalarHandler scalarHandler = new ScalarHandler();

String sql4 = "select count(*) from book";

Long bookNum = runner.query(con,sql4, scalarHandler);

System.out.println(bookNum);

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

//5.关闭资源

DbUtils.close(con);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java前后端接口文档_前后端交互接口设计规范

在开发web应用的时候&#xff0c;往往会涉及到一个问题&#xff0c;前端后接口定义的问题。接口定义设计的好坏很大程度上能影响一个项目的进度和可扩展性。但是前辈们在这个问题上留下了非常宝贵的一些常规的设计思路&#xff0c;值得我们参考。1、后端设计统一的返回模型在与…

2015 多校第三场

1002 求max&#xff08;f(a),f(b)&#xff09;, f为不重复的素因子个数&#xff0c; 在数据要求以内 &#xff0c; 每个数最多有7个&#xff0c;可以打表。 1 /*Author :usedrose */2 /*Created Time :2015/7/29 11:32:09*/3 /*File Name :2.cpp*/4 #include <cstdio>5 …

微信支付现金红包接口(转)

微信支付现金红包接口正式开放&#xff0c;只需开通微信支付&#xff0c;即可接入现金红包。通过现金红包接口&#xff0c;公众号开发者可以策划相关运营活动&#xff0c;向用户发放微信支付现金红包&#xff0c;更好的达到品牌推广及回馈用户的效果。具体能力如下&#xff1a;…

The return types for the following stored procedures could not be detected

1、使用dbml映射数据库&#xff0c;添加存储过程到dbml文件时报错。 2、原因&#xff1a;存储过程中使用了临时表 3、解决方案 3.1 通过自定义表值变量实现 Ex: DECLARE TempTable TABLE ( AttributeID INT, Value NVARCHAR(200) ) INSERT INTO TempTable Select * from Attrib…

webstock php,workerman_connection

workerman_connection 测试WebStock 功能Description整理PHP 实现webstock 功能的相关流程。感谢workerman 开发作者提供开源组件。安装 composer# curl -sS https://getcomposer.org/installer | php如果安装 composer 提示PHP 版本不够按照如下处理&#xff0c;否则跳过。提示…

java android 界面设计,Android精美登录界面设计

在网上在到一个登录界面感觉挺不错的&#xff0c;给大家分享一下~先看效果图&#xff1a;这个Demo除了按钮、小猫和Logo是图片素材之外&#xff0c;其余的UI都是通过代码实现的。一、背景背景蓝色渐变&#xff0c;是通过一个xml文件来设置的。代码如下&#xff1a;background_l…

jmeter java接口,jmeter并发测试java接口 | 学步园

Sample这里我用到主要JMeter的线程和报表&#xff0c;扩展了他的“Java请求”这个应用类别。要扩展此应用&#xff0c;要用到lib/ext/ApacheJMeter_java.jar,他封装此应用。首先&#xff0c;需要继承ApacheJMeter_java.jar中的抽象类AbstractJavaSamplerClient&#xff0c;它提…

Web项目练习总结(错误校正篇)

老师布置任务&#xff0c;从SVN上弄个项目来练练手&#xff0c;熟悉下过程。 myeclipse安装SVN 然后把MobileManageSys下下来 然后漫长的等待。。。 然后配置数据库&#xff0c;导入&#xff0c;这里用的是SQLyog&#xff0c;其他的也可以 之后这里会产生一大堆的错误&#xff…

nginx php7提速,nginx+php7-fpm 性能提升几倍跟踪实践结果并优化

nginxphp7-fpm 性能提升几倍跟踪实践结果并优化nginxphp7-fpm 性能提升几倍&#xff0c;跟踪实践结果并优化历史ubuntu服务器使用的apachephp5&#xff0c;现在使用nginuxphp7-fpm方式&#xff0c;看效果图&#xff0c;啥也不说了。强烈推荐升级到php7&#xff0c;当然升级中基…

matlab地球卫星模型,地球卫星三维运行轨道MATLAB仿真

地球卫星三维运行轨道MATLAB仿真1、问题的描述3 轨道上运行的地球卫星&#xff0c;根据牛顿第二定律Fma以及万有引力定律F-GmME*r/r&#xff0c;3可得a-GME*r/r&#xff0c;即x -GME*x/r3 3 y -GME*y/r; z -GM*z/r3E (1)式中&#xff0c;(x&#xff0c;y&#xff0c;z)表示卫星…

php中定义css样式的好处,CSS的优点和缺点分别是什么

CSS的优点有&#xff1a;丰富的样式定义、易于修改、结构清晰、多页面使用等&#xff1b;CSS的缺点&#xff1a;浏览器支持不一样具有兼容性、不能明确指定继承性CSS的主要哦作用是为HTML页面添加样式&#xff0c;使得页面更加美观。接下来在文章中将为大家详细介绍CSS的优点与…

设计模式学习笔记-观察者模式

1. 概述 有时被称作发布/订阅模式&#xff0c;观察者模式定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时&#xff0c;会通知所有观察者对象&#xff0c;使它们能够自动更新自己。 2. 解决的问题 将一个系统分割…

Handler与多线程

1、Handler介绍 在Android开发中&#xff0c;我们常会使用单独的线程来完成某些操作&#xff0c;比如用一个线程来完成从网络上下的图片&#xff0c;然后显示在一个ImageView上&#xff0c;在多线程操作时&#xff0c;Android中必须保证以下两点&#xff1a; &#xff08;1&…

oracle语法官方文档,Oracle官方文档必备语法知识

很多Oracle DBA虽然接触Oracle时间很长&#xff0c;但是一旦想不起语法或找不出相应参数时&#xff0c;习惯百度或谷歌。虽然已经下载了官方文档&#xff0c;但是Oracle官方文档必备语法知识[日期&#xff1a;2015-04-21]来源&#xff1a;Linux社区作者&#xff1a;kuqlan[字体…

新中大oracle实列名,新中大财务软件操作流程(完整版)

新中大财务软件最基本的三个模块&#xff1a;核算单位、财务处理系统、报表处理系统。简单地说&#xff0c;核算单位模块是用于建账&#xff0c;财务处理系统用于登账&#xff0c;报表处理系统用于出报表的。一、总账处理系统1、建账套双击财务软件图标 → 在登录界面选择用户编…

linux切换任务命令,Linux top详解之交互命令、命令行选项

top交互命令我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。2.1 ‘h’: 帮助首先&#xff0c;我们可以用’h’或者’?’显示交互命令的帮助菜单。2.2 “或者”: 刷新显示top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新&am…

linux系统硬盘设置密码,LUKS:Linux下磁盘加密

Linux下磁盘加密LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准&#xff0c;它不仅能通用于不同的Linux发行版本&#xff0c;还支持多用户/口令。因为它的加密密钥独立于口令&#xff0c;所以如果口令失密&#xff0c;我们可以迅速改变口令而无需重新加密真个硬盘…

Hibernate查询

9.1 Hibernate数据查询 数据查询与检索是Hibernate的一个亮点。Hibernate的数据查询方式主要有3种&#xff0c;它们是&#xff1a; l Hibernate Query Language&#xff08;HQL&#xff09; l Criteria Query l Native SQL 下面对这3种查询方式分别进…

单例模式 创建对象

两种选择 1 使用pthread_once&#xff0c; once是类的成员变量 只执行一次Create create的作用是创建一个对象 2 使用 static lock 如下所示&#xff0c;注意lock必须是static的&#xff0c;否则是局部变量&#xff0c;每个线程都有自己的lock&#xff0c;无法保证只执行一次。…

opencv配置

OpenCV的简单安装和一次性配置在这里就不赘述了&#xff0c;网上教程很多&#xff0c;可以参考一下这个链接里面的教程http://wenku.baidu.com/view/3b40de25453610661ed9f46b.html。 但是很多情况下面&#xff0c;我们新建一个项目就要重新配置一次OpenCV&#xff0c;那就相当…