- 浏览: 172595 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (72)
- java (21)
- spring (3)
- struts2 (0)
- hibernate (0)
- sql (3)
- linux (20)
- java web (2)
- maven (1)
- cache (2)
- memcached api (1)
- 简化jdbc操作数据库 (2)
- JAVA 网络编程 (3)
- JAVA 多线程 (0)
- C&C++ (1)
- plsql (1)
- SVN常用命 (2)
- Hadoop2 (0)
- jvm (0)
- flex (0)
- html5 & css3 & ECMAscript (0)
- RFC 文档翻译 (0)
- http (0)
- Hadoop (1)
- android (0)
- BIG_DATA (2)
- v (0)
- linux php tomcat tengine (1)
最新评论
-
yuanliangding:
没整理。文章还有重复的部分。
Java虚拟机(JVM)中的内存设置详解 -
svsecomm:
...
转javassist用法 -
svsecomm:
[u][/u]
转javassist用法 -
hvang1988:
用惯了spirng,Guice的注解方式真有点不习惯反向的感 ...
Google Guice 5 web -
xaocaotanghui:
Java虚拟机(JVM)中的内存设置详解
查询 runner object dbutils update
日期:8月9日
讲师:佟刚
在相继学习了JDBC和数据库操作之后,我们明显感到编写JDBC代码并非一件轻松的事儿。为了帮助我们更高效的学习工作,从JDBC的繁重代码中解脱出来,老佟给我们详尽介绍了一个简化JDBC操作的组件——DBUtils。我们今天主要学习了它所提供的两个类和一个接口。
组件下载地址:http://commons.apache.org/dbutils/
DbUtils类(org.apache.commons.dbutils.DbUtils)主要负责装载驱动、关闭连接的常规工作。
1. close: 检查所提供的参数是不是NULL,如果不是的话,它们就关闭连接、声明和结果集。
2. CloseQuietly:避免连接、声明或结果集为NULL的情况被关闭。
3. CommitAndCloseQuietly(Connection conn):用来提交连接,然后关闭连接,并且在关闭连接时不向上抛出在关闭时发生的一些SQL异常。
4. LoadDriver(String driveClassName): 装载并注册JDBC驱动程序,如果成功就返回TRUE。
QreryRunner类(org.apache.commons.dbutils.QueryRunner) 显著的简化了SQL查询,并与ResultSetHandler协同工作将使编码量大为减少。
1. query(Connection conn, String sql, Object[] params, ResultSetHandler rsh):执行选择查询,在查询中,对象阵列的值被用来作为查询的置换参数。
2. query(String sql, Object[] params, ResultSetHandler rsh):方法本身不提供数据库连接,执行选择查询,在查询中,对象阵列的值被用来作为查询的置换参数。
3. query(Connection conn, String sql, ResultSetHandler rsh):执行无需参数的选择查询。
4. update(Connection conn, String sql, Object[] params):被用来执行插入、更新或删除(DML)操作。
ResultSetHandler接口(org.apache.commons.dbutils.ResultSethandler)执行处理一个结果集对象,将数据转变并处理为任何一种形式,供其他应用使用。
1. Object handle (java.sql.ResultSet .rs) :结果集(ResultSet)作为参数传入方法内,处理这个结果集,返回一个对象。
ArrayHandler
ArrayListHandler
BeanHandler
BeanListHandler
MapHandler
MapListHandler
ScalarHandler
我们学习了此组件的两个类和一个接口以后,写了下列代码供参考。
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
public class TestQueryRunner {
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
//queryOracle();
update();
}
private static void update() throws SQLException{
QueryRunner runner = new QueryRunner();
Connection conn = DBManager.getConnection();
//删除非 manager 中工资 低于 5000 的员工
String sql = "UPDATE examstudent SET student_name = ? WHERE flow_id = ?";
Object [] params = new Object[]{"Jerry", 5000};
runner.update(conn, sql, params);
}
private static void insert() throws SQLException{
QueryRunner runner = new QueryRunner();
Connection conn = DBManager.getConnection();
//删除非 manager 中工资 低于 5000 的员工
String sql = "INSERT INTO examstudent(flow_id, type, id_card, exam_card, student_name, location, grade) VALUES(?, ?, ?, ?, ?, ?, ?)";
Object [] params = new Object[]{5000, 6, "身份证", "准考证", "Tom", "北京", 99};
runner.update(conn, sql, params);
}
private static void delete() throws SQLException{
QueryRunner runner = new QueryRunner();
Connection conn = DBManager.getConnection();
//删除非 manager 中工资 低于 5000 的员工
String sql = "delete from employees " +
"where employee_id not in " +
" (select distinct d.manager_id from departments d where d.manager_id is not null) " +
"and salary < ?";
System.out.println(sql);
Object [] params = new Object[]{5000};
runner.update(conn, sql, params);
}
private static void queryOracle() throws SQLException{
QueryRunner runner = new QueryRunner();
Connection conn = DBManager.getConnection();
//oracle 中的别名可以别解析
String sql = "SELECT flow_id flowid, type, id_card idcard, exam_card examcard, student_name studentname, location, grade FROM examstudent";
Object obj = runner.query(conn, sql, new BeanListHandler(ExamStudent.class));
System.out.println(obj);
}
private static void query() throws SQLException {
//1. 创建一个 QueryRunner 的实例
QueryRunner runner = new QueryRunner();
Connection conn = DBManager.getConnection();
String sql = "SELECT id, name, address, phone FROM customers WHERE name LIKE ?";
Class type = Customer.class;
Object [] params = new Object[]{"%%"};
//2. 查询操作
//conn: 查询需要的数据库连接, sql: 查询使用的 sql 语句, rsh: 如何转换查询得到的结果集, params: 填补 sql 语句参数的数组
Object obj = runner.query(conn, sql, new BeanListHandler(type), params);
//System.out.println("^^" + obj);
sql = "SELECT flow_id flowid, type, id_card idcard, exam_card examcard, student_name studentname, location, grade FROM examstudent";
type = ExamStudent.class;
obj = runner.query(conn, sql, new BeanListHandler(ExamStudent.class));
System.out.println(obj);
}
}
几天来的学习令人获益匪浅。如同刚开始学习数据库时所说的那样,当今的企业开发大都是围绕数据库进行的,它重要性不言而喻。这些日子,我们从每一个细节入手,希望更广更深的了解掌握数据库开发技术。我的日志显然无法囊括全部所学内容。很多技术还需自己加紧练习,对于这些不敢保证自己的理解万分正确的技术点,我就暂时不写了。待到以后使用之时会提到。
发表评论
-
mysql.
2014-03-08 16:53 725mysql安装过程中出现错误ERROR 1820 (HY00 ... -
java annotation
2013-10-19 14:27 715元数据的作用 如果要对于元数据的作用进行分类,目前还没有明 ... -
sun directory server
2013-10-17 14:07 737Sun One Directory Server(LDAP) ... -
sun ldap
2013-10-16 16:07 415LDAP快速入门 1. LDAP简介 LDAP(轻 ... -
httpclient 上传文件客户端处理
2013-10-07 11:09 900/** * */package cn.vwall.playe ... -
httpclient 上传文件 服务端解析
2013-10-07 11:07 850//commons-fileupload.jar common ... -
ffmpeg 视频加水印
2013-09-02 14:22 8273ffmpeg为视频添加水印watermark【转加补充】 ... -
ffmpeg args
2013-08-25 02:17 939先从Mencoder这个开始,将所有格式转AVI, RM ... -
socket 2
2013-06-11 20:57 978二、用于获得和设置Socket选项的getter和sette ... -
StringUtils
2012-12-31 01:45 1743StringUtils详细介绍 public stat ... -
转javassist用法
2012-10-15 17:15 13372Javassist是一个执行字 ... -
mysql 存图标问题
2012-10-08 17:48 0声明:我的文章都是在实际工作中遇到并解决问题后撰写的,可 ... -
转 Quartz Cron
2012-10-02 10:28 1121Cron表达式 Quartz使用类似于Linux下的Cr ... -
Excel 色表
2012-05-11 16:09 1215按颜色菜单的色块位置排列 第1列 第2列 ... -
Google Guice 5 web
2012-05-11 16:09 31953 Web 和 Servlet 3.1 快速开始 我 ... -
Google Guice 5 aop
2012-05-02 23:06 15542 AOP 面向切面编程 2.1 AOP入门 在前面 ... -
Google Guice 4
2012-05-02 23:00 1895本章节继续讨论依赖注入的其他话题,包括作用域(scope ... -
Google Guice 3
2012-05-02 22:43 15511.3 更多话题 1.3.1 接口多实现 如果一个接 ... -
Google Guice 2
2012-05-02 22:30 11331.2 属性注入(Field Inject) 1.2. ... -
Google Guice 1
2012-05-02 22:23 15071. 依赖注入 1.1 类依赖注入 所谓的绑定就是将 ...
相关推荐
java apache 数据库 连接池 里边附加使用方法
apache开源项目源码DdlUtils-1.0-src 全部高质量操作数据库的java源程序 各种操作数据库的工具类源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其优良的代码风格和高质量的源码是学习者...
flask,Apache,mod_wsgi,db2 特别说明:mod_wsgi模块不用编译so
MaxMind DB Apache模块 该模块允许您使用libmaxminddb库从Apache 2.2+中查询MaxMind数据库文件。 要求 此模块要求安装Apache 2.2或2.4,包括任何相应的“ dev”软件包,例如Ubuntu上的apache2-dev 。 您应该在$PATH...
Derby Developer's Guide. Purpose of this guide This guide explains how to use the core Derby technology and is for developers building Derby applications. It describes basic Derby concepts, such as ...
标签:apache、flink、statebackend、rocksdb、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...
Java DB(英文全称data base,数据库)是依照某种数据模型组织起来并存放二...Java DB 是Oracle 支持的Apache Derby 开源数据库的发行版本。它通过JDBC 和Java EE API 支持标准的ANSI/ISO SQL。Java DB 包括在JDK 中。
标签:flink、11、rocksdb_2、apache、statebackend、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不
第三方jar 博文链接:https://gaojingsong.iteye.com/blog/2308728
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful ...根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...
ObjectRelationalBridge(OJB) 1.0.4:OJB是一个开源的对象关系映射工具,最初起源于Apache DB Project。Lucene:它是一个基于Java的开源搜索引擎。可以从http://lucene.apache.org下载Lucene1.9.1。
db-derby-10.11.1.1-bin.zip,apache derby 相当于java db(derby)的完整版
适用于Apache Spark的Azure Cosmos DB连接器 azure-cosmosdb-spark是和的官方连接器。 该连接器使您可以通过python和scala Apache Spark DataFrames轻松读取和写入Azure Cosmos DB。 它还允许您轻松创建用于批处理,...
初始化数据库:找到项目数据库文件:docs/db/pb_cms_base.sql,执行 pb_cms_base.sql 安装Redis:Redis最低版本支持 3.2 修改(resources/application.yml)配置文件 修改数据库链接相关连接串、用户名和密码(可搜索...
OrientDB是一个开源NoSQL数据库管理系统。... OrientDB是第二代分布式数据库,具有灵活性的文档在一个产品与Apache 2许可证的开放源代码。 在OrientDB之前市场上有几个NoSQL数据库,其中一个是MongoDB。
orientdb-gremlin, OrientDB的TinkerPop3图形结构实现 orientdb-gremlin Apache TinkerPop 3图形结构OrientDB的实现。 这开始只是一个概念证明,但感谢大家现在的帮助是一个很好的形状。警告:这是( 到现在为止)的...
tomcat5.0 Apache2 mysql-connector-java-5.0.3-bin.jar XP下apache2.0+tomcat5.0+php5.2整合文档.txt XP下apache2.0+tomcat5.0+php5.2整合文档.doc test.php mysql-gui-tools-5.0-r12-win32.msi my.ini db.php ...
标签:apache、flink、statebackend、rocksdb、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,
org.apache.ivy.eclipse.ant_2.4.0.final_20141213170938.jar