apache DBUtils 使用例子demo
ScalarHandler ——————标量- 用于select count(1)|sum|avg|max …一些聚合函数
- package com.jiepu.testdbutil;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import org.apache.commons.dbutils.QueryRunner;
- import org.apache.commons.dbutils.ResultSetHandler;
- import org.apache.commons.dbutils.handlers.BeanHandler;
- import org.apache.commons.dbutils.handlers.BeanListHandler;
- import org.apache.commons.dbutils.handlers.MapHandler;
- import org.apache.commons.dbutils.handlers.MapListHandler;
- import org.apache.commons.dbutils.handlers.ScalarHandler;
- import org.junit.AfterClass;
- import org.junit.BeforeClass;
- import org.junit.Test;
- import org.sqlite.SQLiteDataSource;
- //http://www.cnblogs.com/liuwt365/p/4111584.html
- public class TestDBUtils {
- private static SQLiteDataSource dataSource;
- private static QueryRunner runner;
- private static String tableName="User";
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
- dataSource= new SQLiteDataSource();
- dataSource.setUrl("jdbc:sqlite:testdbutil.db");
- runner=new QueryRunner(dataSource);
- execute("CREATE TABLE IF NOT EXISTS "+tableName+"(id integer primary key autoincrement, name varchar(50),password varchar(50)," +
- "age integer,createdate integer)",dataSource);
- }
- public static int execute(String sql ,SQLiteDataSource dataSource){
- Statement statement;
- int result =0;
- try {
- statement = dataSource.getConnection().createStatement();
- result= statement.executeUpdate(sql);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return result;
- }
- @Test
- public void Query1() throws Exception
- {
- //String sql="INSERT INTO users VALUES ('U002','tom','4321' )";
- //runner.update(sql);
- String sql="INSERT INTO "+tableName+"(name,password,age,createdate) VALUES (?,?,?,?)";
- runner.update(sql,"Jim","123456","24",new Date().getTime());
- runner.update(sql,"Kim","1234567","24",new Date().getTime());
- runner.update(sql,"北京","12345678","24",new Date().getTime());
- runner.update(sql,"嘉兴","123456789","24",new Date().getTime());
- runner.update(sql,"tom","123456789","24",new Date().getTime());
- System.out.println(dataSource);
- }
- @Test
- public void Query2() throws Exception
- {
- //String sql=" UPDATE users SET NAME='Kim' WHERE NAME='jim' ";
- //runner.update(sql);
- String sql=" UPDATE "+tableName+" SET name=? WHERE name=? ";
- runner.update(sql,"lily","Kim");
- Query5();
- }
- @Test
- public void Query3() throws Exception
- {
- //String sql="DELETE FROM users WHERE NAME='lily' ";
- //runner.update(sql);
- String sql="DELETE FROM "+tableName+" WHERE name=? ";
- runner.update(sql,"tom");
- Query5();
- }
- @Test
- public void Query4() throws Exception
- {
- //String sql="SELECT * FROM users where id ='U002' ";
- //user u= runner.query(sql, new BeanHandler<user>(user.class));
- String sql="SELECT * FROM "+tableName+" where id =? ";
- User u=runner.query(sql, new BeanHandler<User>(User.class),"2");
- System.out.println(u);
- }
- @Test
- public void Query5() throws Exception
- {
- String sql="select * from "+tableName;
- List<User> list= runner.query(sql, new BeanListHandler<User>(User.class));
- for(User u:list)
- {
- System.out.println(u);
- }
- }
- @Test
- public void Query6() throws Exception
- {
- String sql="select id,name,password from "+tableName;
- Map<String, Object> map= runner.query(sql, new MapHandler());
- System.out.println(map.toString());
- }
- @Test
- public void Query7() throws Exception
- {
- String sql="select id,name,password from "+tableName;
- List<Map<String , Object>> list= runner.query(sql, new MapListHandler());
- System.out.println(list);
- }
- @Test
- public void Query8() throws Exception
- {
- String sql="select count(*) from "+tableName;
- Object obj=runner.query(sql, new ScalarHandler());
- int i=Integer.valueOf(obj.toString());
- System.out.println(i);
- }
- @Test
- public void batch()
- {
- /**String sql="INSERT INTO "+tableName+"(name,password,age,createdate) VALUES (?,?,?,?)";
- List<User> users=new ArrayList<User>();
- users.add(new User());
- runner.batch(sql, users.toArray());
- Query5();*/
- }
- @Test
- public void custom() throws SQLException
- {
- ResultSetHandler<User[]> h = new ResultSetHandler<User[]>() {
- public User[] handle(ResultSet rs) throws SQLException {
- if (!rs.next()) {
- return null;
- }
- ResultSetMetaData meta = rs.getMetaData();
- int cols = meta.getColumnCount();
- User[] result = new User[cols];
- for (int i = 0; i < cols; i++) {
- User user=new User();
- user.setId(rs.getInt(1));
- user.setName(rs.getString(2));
- user.setPassword(rs.getString(3));
- user.setAge(rs.getLong(4));
- user.setCreatedate(rs.getLong(5));
- result[i]=user;
- rs.next();
- }
- return result;
- }
- };
- User[] result = runner.query("SELECT * FROM "+tableName+" WHERE age=?", h, "24");
- for (User user : result) {
- System.out.println(user);
- }
- }
- //http://wenku.baidu.com/view/6d4bb27602768e9951e73849.html
- @AfterClass
- public static void setUpAfterclass()
- {
- dataSource=null;
- runner=null;
- }
- }
- package com.jiepu.testdbutil;
- public class User {
- //使用dbutil 实体类成员不要使用基本类型int long 应该使用封装类型 Integer Long
- private Integer id;
- private String name;
- private String password;
- private Long age;
- private Long createdate;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public Long getAge() {
- return age;
- }
- public void setAge(Long age) {
- this.age = age;
- }
- public Long getCreatedate() {
- return createdate;
- }
- public void setCreatedate(Long createdate) {
- this.createdate = createdate;
- }
- @Override
- public String toString() {
- return "User [id=" + id + ", name=" + name + ", password=" + password
- + ", age=" + age + ", createdate=" + createdate + "]";
- }
- }
maven pom.xml
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.jiepu</groupId>
- <artifactId>testdbutil</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>testdbutil</name>
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- </dependency>
- <dependency>
- <groupId>commons-dbutils</groupId>
- <artifactId>commons-dbutils</artifactId>
- <version>1.6</version>
- </dependency>
- <dependency>
- <groupId>org.xerial</groupId>
- <artifactId>sqlite-jdbc</artifactId>
- <version>3.8.7</version>
- </dependency>
- </dependencies>
- </project>
apache DBUtils 使用例子demo的更多相关文章
- JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表
本文目录: 1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData 2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData ...
- Apache DBUtils使用总结 【转】
Apache DBUtils使用总结 DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味. ...
- Apache—DBUtils框架简介
转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner ...
- Apache—dbutils开源JDBC工具类库简介
Apache—dbutils开源JDBC工具类库简介 一.前言 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用 ...
- org.apache.hadoop.util.Shell demo/例子
package cn.shell; import java.io.IOException; import org.apache.hadoop.util.Shell; public class Shel ...
- Apache DbUtils - JDBC轻量级封装的工具包
前段时间使用了Apache Common DbUtils这个工具,在此留个印,以备不时查看.大家都知道现在市面上的数据库访问层的框架很多,当然很多都是包含了OR-Mapping工作步骤的例如大家常用的 ...
- Apache DbUtils 探秘
听说Apache的DbUtils很好用,而且是对jdbc的简单的封装,所以可以和jdbc一起混搭,多以今天就来尝试一下,关于DbUtils 是如何使用的. 准备 数据库: MySQL 依赖: mysq ...
- Apache—DBUtils框架
1.所需要jar包 commons-collections-2.1.1.jarmchange-commons-java-0.2.11.jarmysql-connector-java-5.1.18-bi ...
- DbUtils使用例子
DbUtils: JDBC Utility Component Examples This page provides examples that show how DbUtils may be us ...
随机推荐
- 从Iris数据集开始---机器学习入门
代码多来自<Introduction to Machine Learning with Python>. 该文集主要是自己的一个阅读笔记以及一些小思考,小总结. 前言 在开始进行模型训练之 ...
- Kubernetes学习之路(七)之Coredns和Dashboard二进制部署
一.CoreDNS部署 在 Cluster 中,除了可以通过 Cluster IP 访问 Service,Kubernetes 还提供了更为方便的 DNS 访问. (1)编辑coredns.yaml文 ...
- [CQOI2015]任务查询系统 主席树
[CQOI2015]任务查询系统 LG传送门 以前还没见过主席树的这种写法. 考虑使用差分的思想处理每一个任务,然后所有的东西就都能顺理成章地用主席树维护了,查询的时候和平时的主席树有一点不同,详见代 ...
- [webpack]--webpack 如何解析代码模块路径
前言 webpack是如何解析代码模块路径 webpack 中有一个很关键的模块 enhanced-resolve 就是处理依赖模块路径的解析的,这个模块可以说是 Node.js 那一套模块路径解析的 ...
- asp.net core发布到docker报Microsoft.ApplicationInsights.AspNetCore miss的错误
dotnet core 2.1的asp.net core在docker下部署的时候发生下面的错误. Error: An assembly specified in the application de ...
- c# ajax从后台获取数据list数组 $.each再显示数据
后台代码 public JsonResult linkage(string Department) {//逻辑是:先从数据库查到表数据 再把表数据转换为LIST给AJAX HE_Department ...
- 电梯调度 结对项目开发(郭林林&胡潇丹)
(一)需求分析: 上升,下降,开门,关门: 超过负载以后发出警报,下去乘客: 电梯出现故障后,电梯停止: 电梯楼层的输入框可以同时指定所要到的楼层,也是楼层的显示框: 电梯同时记录多个状态,即为到达多 ...
- node.js主从分布式爬虫
前言 前文介绍过用Python写爬虫,但是当任务多的时候就比较慢, 这是由于Python自带的http库urllib2发起的http请求是阻塞式的,这意味着如果采用单线程模型,那么整个进程的大部分时间 ...
- Netty源码分析第4章(pipeline)---->第4节: 传播inbound事件
Netty源码分析第四章: pipeline 第四节: 传播inbound事件 有关于inbound事件, 在概述中做过简单的介绍, 就是以自己为基准, 流向自己的事件, 比如最常见的channelR ...
- Docker 自定义网络
1.创建自定义网络 docker network create -d bridge --subnet 172.25.0.0/16 network_name 2.redis docker 添加到网络 d ...