// 这个是在添加数据
@Test
public void demo1() {
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
String sql = "insert into Book values(?,?)";
try {
int num = qr.update(sql, 26, "明朝那些事");
if (num > 0) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // 修改数据
@Test
public void demo2() {
QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
try {
String sql = "update Book set bname=? where id=?";
int num = queryRunner.update(sql, "史记", 29);
if (num > 0) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
} catch (Exception e) {
e.printStackTrace();
}
} // 下面的是查询语句
// 将数据表中的第一条数据封装成object
@Test
public void demo3() {
QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
try {
String sql = "select * from Book";
Object[] objects = queryRunner.query(sql, new ArrayHandler()); System.out.println(Arrays.toString(objects));
} catch (Exception e) {
e.printStackTrace();
}
} //将数据表中的每一条数据封装成object new ArrayListHandler()
@Test
public void demo4(){
QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
try {
String sql="select * from Book";
List<Object[]> list=queryRunner.query(sql,new ArrayListHandler()); for(Object[] objects:list){
System.out.println(Arrays.toString(objects));
} } catch (Exception e) {
e.printStackTrace();
}
} //把数据表中的第一条数据封装成JavaBean实体类对象 BeanHandler
@Test
public void demo5(){
QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
try {
String sql="select * from Book";
Book list=queryRunner.query(sql,new BeanHandler<>(Book.class)); System.out.println(list.toString());
} catch (Exception e) {
e.printStackTrace();
}
} //把数据表中的每一条数据封装成JavaBean实体类对象 BeanListHandler
@Test
public void demo6(){
QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
try {
String sql="select * from Book";
List<Book> list=queryRunner.query(sql,new BeanListHandler<>(Book.class)); for(Book book:list)
System.out.println(book.toString());
} catch (Exception e) {
e.printStackTrace();
}
} //把数据表中的第一条数据封装成Map集合 ,键:列名 值:该列的值 new MapHandler()
@Test
public void demo7(){
QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
try {
String sql="select * from Book";
Map<String,Object > map=queryRunner.query(sql,new MapHandler()); System.out.println(map);
} catch (Exception e) {
e.printStackTrace();
}
} //把数据表中的每一条数据封装成Map集合 ,键:列名 值:该列的值 new MapListHandler()
@Test
public void demo8(){
QueryRunner queryRunner=new QueryRunner(JDBCUtils.getDataSource());
try {
String sql="select * from Book";
List<Map<String,Object >>list=queryRunner.query(sql,new MapListHandler());
for(Map<String,Object>map:list)
System.out.println(map);
} catch (Exception e) {
e.printStackTrace();
}
} // ColunmListHandler: 把数据表中的没一条数据封装成 Map集合, 键:列名 值:该列的值 , 然后把每一行的Map集合装入到一个List集合中.
@Test
public void demo9() {
// 1. 获取可以执行SQL语句的对象: QueryRunner
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
// 2. 编写需要执行的SQL语句
String sql = "select * from Book;";
// 3. 执行SQL语句, 获取结果集
try {
List<Object> list = qr.query(sql, new ColumnListHandler("bname"));
System.out.println(list);
} catch (SQLException e) {
e.printStackTrace();
}
} // ScalarHandler: 把数据表中的没一条数据封装成 Map集合, 键:列名 值:该列的值 , 然后把每一行的Map集合装入到一个List集合中.
@Test
public void demo10() {
// 1. 获取可以执行SQL语句的对象: QueryRunner
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
// 2. 编写需要执行的SQL语句
String sql = "select count(*) from Book;";
// 3. 执行SQL语句, 获取结果集
try {
Object obj = qr.query(sql, new ScalarHandler());
System.out.println(obj);
} catch (SQLException e) {
e.printStackTrace();
}
} // KeyedHandler: 把数据表中的没一条数据封装成 Map集合, 键:列名 值:该列的值 , 然后把每一行的Map集合装入到一个List集合中.
@Test
public void demo11() {
// 1. 获取可以执行SQL语句的对象: QueryRunner
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
// 2. 编写需要执行的SQL语句
String sql = "select * from Book;";
// 3. 执行SQL语句, 获取结果集
try {
Map<Object, Map<String, Object>> map = qr.query(sql, new KeyedHandler("bname"));
for (Object key : map.keySet()) {
System.out.println(key + "..." + map.get(key));
} } catch (SQLException e) {
e.printStackTrace();
}
}

数据库连接池之_DButils的更多相关文章

  1. Java第三方数据库连接池库-DBCP-C3P0-Tomcat内置连接池

    连接池原理 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去.我们可以通过设定连接池 ...

  2. .数据库连接池技术:DBCP和C3P0

    数据库连接池技术:DBCP和C3P0 1.什么是数据库连接池 已知的方法是需要访问数据库的时候进行一次数据库的连接,对数据库操作完之后再释放这个连接,通常这样业务是缺点很明显的: 用户每次请求都需要向 ...

  3. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  4. 数据库连接池c3p0学习

    这里只记录c3p0的数据源,不会涉及到其它方面和别的数据库连接池的对比 配置文件主要的实现方式有三种: 1.手写代码去加载一个配置文件 创建一个config.properties文件如下: drive ...

  5. <十四>JDBC_c3p0数据库连接池

    配置文件:c3p0-config.xml <!-- Hibernate官方推荐使用的数据库连接池即c3p0;dbcp是Tomcat在数据源中使用 --><c3p0-config> ...

  6. <十三>JDBC_dbcp数据库连接池

    配置文件:jdbc.properties username=rootpassword=kkdriverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://1 ...

  7. c3p0数据库连接池的使用详解

    首先,什么是c3p0?下面是百度百科的解释: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Sp ...

  8. Mybatis-update - 数据库死锁 - 获取数据库连接池等待

    最近学习测试mybatis,单个增删改查都没问题,最后使用mvn test的时候发现了几个问题: update失败,原因是数据库死锁 select等待,原因是connection连接池被用光了,需要等 ...

  9. 从零开始学 Java - 数据库连接池的选择 Druid

    我先说说数据库连接 数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名.密码了,然后我们就可以打开门去任意的存取东西了. ...

随机推荐

  1. 视频播放MPMoviePlayerController

    视频播放 如何播放视频 iOS提供了MPMoviePlayerController.MPMoviePlayerViewController两个类,可以用来轻松播放视频和网络流媒体\网络音频 提示:网络 ...

  2. sparksql json 合并json数据

    java public class Demo { private static SparkConf conf = new SparkConf().setAppName("demo" ...

  3. Eclipse Che安装依赖

    java Java 用于运行Che的服务器和用于创建Plug-in包的SDK工具,所以需要安装Java Jdk 1.8 如果只是运行Che的话下载JRE就足够了,但是加入你需要从源代码编译的话你还需要 ...

  4. Residential Gateway System for Home Network Service

    Disclosed herein is a Residential Gateway (RG) system for home network service. The RG system receiv ...

  5. quartz2.x源码分析——启动过程

    title: quartz2.x源码分析--启动过程 date: 2017-04-13 14:59:01 categories: quartz tags: [quartz, 源码分析] --- 先简单 ...

  6. 1.在windows下安装rabbitMQ

    a .RabbitMQ是用erLang语言写的,所以我们在安装rabbitMQ之前要先安装erLang. 要安装最新版本的请分别前往 www.erlang.org和www.rabbitmq.com网站 ...

  7. matlab 警告(warning)、错误(error)、异常(exception)与断言(assert)

    0. 消息标识符(Message Identifiers) 消息标识符,是附加在 error 和 warning 语句上的一个标签,以被 matlab 做唯一性标识. warning 语句所支持的函数 ...

  8. 楼塔当天领袖acm心理(作为励志使用)

    楼主个人博客:吉尔博客 假期空闲的时候使用.这些年来GCJ.ACM,TopCoder 的一个号码的一重要的比赛的参与 回顾.GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前.我 ...

  9. 简单的讲Erlang一些运营商

    Erlang 有几个运营商.对照.数学运算符.布尔运算符,旨在使这些类型的操作者的讨论,参考erlang文件,以样例说明. Erlang的比較运算符 写法例如以下: Expr1 op Expr2 1& ...

  10. mac_开发机初始化环境

    #安装 homebrew 类似 yum ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma ...