- 浏览: 419849 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
kaihop:
很好,值得学习
Axis2开发WebService客户端 的3种方式 -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
Java解决Emoji表情符问题 -
hongbai:
不能匹配这个:http://harveyzeng.iteye. ...
正则表达式匹配域名、网址、url -
qwertyuiopqaz:
引用
Axis2开发WebService客户端 的3种方式 -
whj001:
很详细 ,
Axis2开发WebService客户端 的3种方式
DBUtils知识:
http://blog.csdn.net/farreaching665/article/details/7101132
package
cn.lining.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.KeyedHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
public class test {
@SuppressWarnings ("unchecked" )
public static void main(String[] args) throws ClassNotFoundException {
UserField userField = new UserField();
Connection conn = null ;
String jdbcURL = "jdbc:mysql://localhost:3306/macaw4" ;
String jdbcDriver = "com.mysql.jdbc.Driver" ;
try {
DbUtils.loadDriver(jdbcDriver);
conn = DriverManager.getConnection(jdbcURL, "root" , "root" );
conn.setAutoCommit(false );//关闭自动提交
QueryRunner qRunner = new QueryRunner();
// 以下部分代码采用MapHandler存储方式查询
System.out.println("***Using MapHandler***" );
Map map = (Map) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new MapHandler(), new Object[] { "5" });
System.out.println("id ------------- name " );
System.out.println(map.get("id" ) + " ------------- "
+ map.get("name" ));
// 以下部分代码采用MapListHandler存储方式查询
System.out.println("***Using MapListHandler***" );
List lMap = (List) qRunner.query(conn,
"select * from mc_user_field" , new MapListHandler());
System.out.println("id ------------- name " );
for (int i = 0 ; i < lMap.size(); i++) {
Map vals = (Map) lMap.get(i);
System.out.println(vals.get("id" ) + " ------------- "
+ vals.get("name" ));
}
// 以下部分代码采用BeanHandler存储方式查询
System.out.println("***Using BeanHandler***" );
userField = (UserField) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new BeanHandler(Class.forName("cn.lining.test.UserField" )),
new Object[] { "5" });
System.out.println("id ------------- name " );
System.out.println(userField.getId() + " ------------- "
+ userField.getName());
// 以下部分代码采用BeanListHandler存储方式查询
System.out.println("***Using BeanListHandler***" );
List lBean = (List) qRunner.query(conn,
"select * from mc_user_field" , new BeanListHandler(Class
.forName("cn.lining.test.UserField" )));
System.out.println("id ------------- name " );
for (int i = 0 ; i < lBean.size(); i++) {
userField = (UserField) lBean.get(i);
System.out.println(userField.getId() + " ------------- "
+ userField.getName());
}
// 以下部分代码采用ArrayHandler存储方式查询
System.out.println("***Using ArrayHandler***" );
Object[] array = (Object[]) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new ArrayHandler(), new Object[] { "5" });
System.out.println("id ------------- name " );
System.out.println(array[0 ].toString() + " ------------- "
+ array[1 ].toString());
// 以下部分代码采用ArrayListHandler存储方式查询
System.out.println("***Using ArrayListHandler***" );
List lArray = (List) qRunner.query(conn,
"select * from mc_user_field" , new ArrayListHandler());
System.out.println("id ------------- name " );
for (int i = 0 ; i < lArray.size(); i++) {
Object[] var = (Object[]) lArray.get(i);
System.out.println(var[0 ].toString() + " ------------- "
+ var[1 ].toString());
}
// 以下部分代码采用ColumnListHandler存储方式查询指定列
System.out.println("***Using ColumnListHandler***" );
List lName = (List) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new ColumnListHandler("name" ), new Object[] { "5" });
System.out.println("name " );
for (int i = 0 ; i < lName.size(); i++) {
String name = (String) lName.get(i);
System.out.println(name);
}
// 以下部分代码采用ScalarHandler存储方式查询
System.out.println("***Using ScalarHandler***" );
String name = (String) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new ScalarHandler("name" ), new Object[] { "5" });
System.out.println("name " );
System.out.println(name);
// 以下部分代码采用KeyedHandler存储方式查询
System.out.println("***Using KeyedHandler***" );
Map<String, Map> map2 = (Map<String, Map>) qRunner.query(conn,
"select * from mc_user_field" , new KeyedHandler("name" ));
System.out.println("name: field_name2" );
Map vals = (Map) map2.get("field_name2" );
System.out.println(vals.get("id" ) + " " + vals.get("name" ) + " "
+ vals.get("type" ));
// 以下部分代码插入一条数据
System.out.println("***Insert begin***" );
userField = new UserField();
qRunner.update(conn, "insert into mc_user_field ("
+ "id,name,type,sort_order,required,visible)"
+ "values (?,?,?,?,?,?)" , new Object[] { userField.getId(),
userField.getName(), userField.getType(),
userField.getSort_order(), userField.getRequired(),
userField.getVisible() });
System.out.println("***update end***" );
// 以下部分代码更新一条数据
System.out.println("***update begin***" );
userField = new UserField();
qRunner.update(conn, "update mc_user_field set "
+ "name = ?,type = ?,sort_order = ?,"
+ "required = ?,visible = ?" + "where id = ?" ,
new Object[] { userField.getName(), userField.getType(),
userField.getSort_order(), userField.getRequired(),
userField.getVisible(), userField.getId() });
System.out.println("***update end***" );
// 以下部分代码删除一条数据
System.out.println("***delete begin***" );
userField = new UserField();
qRunner.update(conn, "delete from mc_user_field where id2 = ?" ,
new Object[] { userField.getId() });
System.out.println("***delete end***" );
} catch (SQLException ex) {
ex.printStackTrace();
try {
System.out.println("***rollback begin***" );
DbUtils.rollback(conn);
System.out.println("***rollback end***" );
} catch (SQLException e) {
e.printStackTrace();
}
} finally {
DbUtils.closeQuietly(conn);
}
}
}
ArrayHandler:把结果集中的第一行数据转成对象数组。
ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。
BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
ColumnListHandler:将结果集中某一列的数据存放到List中。
KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。
MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。
ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。
注:本文转自http://seara520.blog.163.com/blog/static/1681276982010616114728453/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.KeyedHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
public class test {
@SuppressWarnings ("unchecked" )
public static void main(String[] args) throws ClassNotFoundException {
UserField userField = new UserField();
Connection conn = null ;
String jdbcURL = "jdbc:mysql://localhost:3306/macaw4" ;
String jdbcDriver = "com.mysql.jdbc.Driver" ;
try {
DbUtils.loadDriver(jdbcDriver);
conn = DriverManager.getConnection(jdbcURL, "root" , "root" );
conn.setAutoCommit(false );//关闭自动提交
QueryRunner qRunner = new QueryRunner();
// 以下部分代码采用MapHandler存储方式查询
System.out.println("***Using MapHandler***" );
Map map = (Map) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new MapHandler(), new Object[] { "5" });
System.out.println("id ------------- name " );
System.out.println(map.get("id" ) + " ------------- "
+ map.get("name" ));
// 以下部分代码采用MapListHandler存储方式查询
System.out.println("***Using MapListHandler***" );
List lMap = (List) qRunner.query(conn,
"select * from mc_user_field" , new MapListHandler());
System.out.println("id ------------- name " );
for (int i = 0 ; i < lMap.size(); i++) {
Map vals = (Map) lMap.get(i);
System.out.println(vals.get("id" ) + " ------------- "
+ vals.get("name" ));
}
// 以下部分代码采用BeanHandler存储方式查询
System.out.println("***Using BeanHandler***" );
userField = (UserField) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new BeanHandler(Class.forName("cn.lining.test.UserField" )),
new Object[] { "5" });
System.out.println("id ------------- name " );
System.out.println(userField.getId() + " ------------- "
+ userField.getName());
// 以下部分代码采用BeanListHandler存储方式查询
System.out.println("***Using BeanListHandler***" );
List lBean = (List) qRunner.query(conn,
"select * from mc_user_field" , new BeanListHandler(Class
.forName("cn.lining.test.UserField" )));
System.out.println("id ------------- name " );
for (int i = 0 ; i < lBean.size(); i++) {
userField = (UserField) lBean.get(i);
System.out.println(userField.getId() + " ------------- "
+ userField.getName());
}
// 以下部分代码采用ArrayHandler存储方式查询
System.out.println("***Using ArrayHandler***" );
Object[] array = (Object[]) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new ArrayHandler(), new Object[] { "5" });
System.out.println("id ------------- name " );
System.out.println(array[0 ].toString() + " ------------- "
+ array[1 ].toString());
// 以下部分代码采用ArrayListHandler存储方式查询
System.out.println("***Using ArrayListHandler***" );
List lArray = (List) qRunner.query(conn,
"select * from mc_user_field" , new ArrayListHandler());
System.out.println("id ------------- name " );
for (int i = 0 ; i < lArray.size(); i++) {
Object[] var = (Object[]) lArray.get(i);
System.out.println(var[0 ].toString() + " ------------- "
+ var[1 ].toString());
}
// 以下部分代码采用ColumnListHandler存储方式查询指定列
System.out.println("***Using ColumnListHandler***" );
List lName = (List) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new ColumnListHandler("name" ), new Object[] { "5" });
System.out.println("name " );
for (int i = 0 ; i < lName.size(); i++) {
String name = (String) lName.get(i);
System.out.println(name);
}
// 以下部分代码采用ScalarHandler存储方式查询
System.out.println("***Using ScalarHandler***" );
String name = (String) qRunner.query(conn,
"select * from mc_user_field where id = ?" ,
new ScalarHandler("name" ), new Object[] { "5" });
System.out.println("name " );
System.out.println(name);
// 以下部分代码采用KeyedHandler存储方式查询
System.out.println("***Using KeyedHandler***" );
Map<String, Map> map2 = (Map<String, Map>) qRunner.query(conn,
"select * from mc_user_field" , new KeyedHandler("name" ));
System.out.println("name: field_name2" );
Map vals = (Map) map2.get("field_name2" );
System.out.println(vals.get("id" ) + " " + vals.get("name" ) + " "
+ vals.get("type" ));
// 以下部分代码插入一条数据
System.out.println("***Insert begin***" );
userField = new UserField();
qRunner.update(conn, "insert into mc_user_field ("
+ "id,name,type,sort_order,required,visible)"
+ "values (?,?,?,?,?,?)" , new Object[] { userField.getId(),
userField.getName(), userField.getType(),
userField.getSort_order(), userField.getRequired(),
userField.getVisible() });
System.out.println("***update end***" );
// 以下部分代码更新一条数据
System.out.println("***update begin***" );
userField = new UserField();
qRunner.update(conn, "update mc_user_field set "
+ "name = ?,type = ?,sort_order = ?,"
+ "required = ?,visible = ?" + "where id = ?" ,
new Object[] { userField.getName(), userField.getType(),
userField.getSort_order(), userField.getRequired(),
userField.getVisible(), userField.getId() });
System.out.println("***update end***" );
// 以下部分代码删除一条数据
System.out.println("***delete begin***" );
userField = new UserField();
qRunner.update(conn, "delete from mc_user_field where id2 = ?" ,
new Object[] { userField.getId() });
System.out.println("***delete end***" );
} catch (SQLException ex) {
ex.printStackTrace();
try {
System.out.println("***rollback begin***" );
DbUtils.rollback(conn);
System.out.println("***rollback end***" );
} catch (SQLException e) {
e.printStackTrace();
}
} finally {
DbUtils.closeQuietly(conn);
}
}
}
发表评论
-
Spring 定时任务及cron表达式
2017-03-16 10:22 4158转发一篇文章并结合实践记录一下,以后可以参考 Ja ... -
mybatis-generator生成mapper等对象
2017-03-15 15:34 2223参考这篇问题基本就能生成了:http://blog. ... -
Java解决Emoji表情符问题
2016-01-28 17:29 22257问题描述:客户调用 ... -
mybatis 模糊查询%问题
2015-09-28 18:52 4314---------------------------- ... -
常见异常备忘
2015-09-23 17:59 5261. jQuery上传插件Uploadify出现Ht ... -
省市区三级联动实现
2015-06-02 18:11 2265参考文档: 从QQ网站中提取的纯JS省市区三级联动 h ... -
面试题记录4
2015-03-10 18:19 6481. 类加载的顺序(初始化顺序) 类加载的顺 ... -
理解Java移位操作
2014-11-06 12:26 8091. 理解移位操作之前先 ... -
一个排好序的数组,找出两数之和为m的所有组合
2014-09-25 16:20 1223public class Test { ... -
Java String知识点
2014-09-19 11:01 9221. 这段程序的结果是什 ... -
用JAVA导出CSV
2014-07-08 14:00 1319/** * 导出为CVS文件 * ... -
Java面试问题
2014-04-17 17:37 862JAVA 接口和抽象类有 ... -
Java动态执行代码Bsh
2014-02-28 17:42 11374首先要到http://www.beanshell.or ... -
Hibernate错误:org.hibernate.LazyInitializationException: illegal access to loading
2013-09-16 19:16 1459org.hibernate.LazyInitializ ... -
Axis2开发WebService客户端 的3种方式
2013-04-18 18:05 79858第一RPC方式,不生成客户端代码 第二,document ... -
freemarker用字符串构建模版
2013-04-15 16:14 1166代码: import java.io.IOExcep ... -
Java基本类型、包装类以及自定义类判断
2013-02-18 17:48 9279一、基本类型与包装类判断 public class Te ... -
正则表达式匹配域名、网址、url
2013-01-28 18:02 33744DNS规定,域名中的标号都由英文字母和数字组成,每一 ... -
正则表达式基础之——环视 [转]
2013-01-25 09:35 1245环视(Lookaround) 1 环视 ... -
通过反射实现map和bean之间的转换
2012-12-21 09:25 1867直接看代码: public class Convert ...
相关推荐
在使用DbUtil时,我们通常会配合PreparedStatement来执行SQL语句,这不仅可以提高代码的安全性,防止SQL注入攻击,还能提升性能,因为数据库可以预编译SQL语句。 以下是一些DbUtil的关键知识点: 1. **数据库连接...
下面我们将详细探讨`DBUtil` 的使用方法以及C3P0连接池的工作原理。 1. **C3P0简介** C3P0是由Miguel Grinberg创建的一个开源项目,它提供了数据库连接池的实现。C3P0的主要功能包括:自动管理数据库连接的创建和...
如示例中所示,使用了 DBCP (`BasicDataSource`) 作为数据源实现,并通过 Spring 进行管理。`DbUtilsTemplate` 类中的 `dataSource` 属性负责接收来自 Spring 的数据源实例。 ```java public class DbUtilsTemplate...
在Java Web开发中,数据库连接管理是一个至关重要的环节。`DbUtil`是一个常见的数据库操作工具类,用于简化数据库连接的创建、关闭等操作,而...通过实际操作,你可以更好地掌握`DbUtil`和Tomcat数据源的配置与使用。
5. 对于复杂的SQL操作,DBUtil可能无法满足需求,此时应考虑使用ORM框架,如Hibernate或MyBatis。 综上所述,DBUtil工具类是提高开发效率、简化数据库操作的重要工具。在实际开发中,根据项目需求选择合适的DBUtil...
在提供的压缩包文件"DBUtil"中,可能包含了DBUtil工具类的源代码、相关的配置文件(如数据库连接配置)以及使用示例。学习这个jar包,可以深入了解其内部实现原理,如何集成到自己的项目中,以及如何自定义配置以...
以下是一些基于DBUtil的示例代码,展示了如何使用QueryRunner执行基本的CRUD操作: ```java import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; public ...
8. **使用示例和源码分析**: 提供的部分方法使用说明和源码可以帮助开发者快速理解和使用DButil。通过阅读源码,可以了解其实现原理,学习如何设计和实现类似的工具类。 在实际应用中,DButil可以极大地方便开发...
4. **缓存策略**:为了提高性能,`dbutil`可能集成数据库查询结果的缓存机制,如使用Redis或Memcached存储查询结果,减少重复的数据库访问。 5. **数据迁移和同步**:在多环境部署时,`dbutil`可能包含数据迁移和...
在这个“dbutil工具类使用demo”中,我们将探讨如何利用dbutil(可能是Apache Commons DbUtils库)和Maven Druid数据源来高效、安全地执行数据库交互。DbUtils是一个小型且实用的库,它简化了JDBC代码,提供了基本的...
本教程将围绕"DBUtil",一个简单的JDBC工具类,来介绍如何使用配置文件进行SQL连接和数据库的基本操作。这个工具类适用于初学者学习数据库连接管理。 首先,我们来看"db.properties"文件,这是用来存储数据库连接...
在提供的代码示例中,可以看到如何使用 DbUtil 进行数据库查询: 首先,导入必要的类,如 `DbUtils`、`QueryRunner` 和 `BeanListHandler`。然后,加载数据库驱动(这里使用的是 MySQL 驱动),创建 `QueryRunner` ...
例如,一个简单的使用DBUtil执行SQL插入语句的示例可能是: ```csharp using (var dbUtil = new DBUtil()) { string sql = "INSERT INTO Users (Username, Password) VALUES (@Username, @Password)"; dbUtil....
NULL 博文链接:https://hdzhangyanfeng.iteye.com/blog/2047944
使用时,只需将这个JAR文件添加到项目的类路径中,就可以通过导入相关的类和方法来使用DBUtil的功能。 总的来说,DBUtil是Java开发中一个实用的数据库操作工具,它通过封装JDBC,使得数据库操作更加便捷,同时减少...
DBUtil的类,在WEB开发当中有许多项目都需要用它,可以不用重复写,这样很方便
在提供的"util"文件夹中,可能包含了SqlHelper和DBUtil的实现源码,以及可能的示例或测试用例。开发者可以通过阅读这些源码,理解其内部工作原理,以及如何根据项目需求进行定制或扩展。 总结来说,韩顺平SqlHelper...
commons-dbutil帮助文档
5. **示例代码**: ```java public List<User> paginate(int pageNum, int pageSize) { String sql = "SELECT * FROM users LIMIT ?, ?"; Object[] params = { (pageNum - 1) * pageSize, pageSize }; return ...
DBUtil类内部包含有连接池创建和连接池的关闭,下载后记得修改URL