JDBC总结(含DbUtils组件)
jdbc
1. jdbc:使用java代码(程序)发送sql语句的技术 2. jdbc的核心接口(查看API):
java.sql
Driver,DriverManger,Statement,ResultSet(常用)
javax.sql 3.jdbc 主要应用内容
Statement执行( DDL,DML,DQL)
CallableStatment执行存储过程
PreparedStatment执行sql(预编译可防止恶意密码,防止sql注入)
存储过程的调用
批处理插入,删除,更新数据
事务
存储二进制文件(如图片) 4.DBUtils 组件(commons-dbutils.jar)
Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,
学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。
因此dbutils成为很多不喜欢hibernate的公司的首选。 两个常用的 (org.apache.commons.dbutils )classes -- 查看APIdoc
DbUtils
连接数据库,关闭资源 QueryRunner
查询,更新,批处理等 Interface ResultSetHandler<T> All Known Implementing Classes:
---》(一些DbUtils 提供的封装结果集对象)
AbstractKeyedHandler, AbstractListHandler,
ArrayHandler, ArrayListHandler,
BaseResultSetHandler, BeanHandler, BeanListHandler, BeanMapHandler,
ColumnListHandler, KeyedHandler,
MapHandler, MapListHandler,
ScalarHandler
以下较常用:
1)BeanHandler: 查询返回单个对象
2)BeanListHandler: 查询返回list集合,集合元素是指定的对象
3) ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
4) ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
5) ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)
6) MapHandler 查询返回结果的第一条记录封装为map 自定义结果集封装数据:(我查询的是student表中的id=29的学生)
public void testQuery() throws Exception {
String sql = "select * from student where id=?";
conn = JdbcUtil.getConnection();
QueryRunner qr = new QueryRunner();
// select
Student student = qr.query(conn, sql, new ResultSetHandler<Student>() {
//封装student对象
public Student handle(ResultSet rs) throws SQLException{
if (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
return student;
}
return null;
}
},29);
System.out.println(student);
conn.close();
}
使用DbUtils 组件封装结果集数据:
public void testQuery()throws Exception{
String sql = "select * from student where id=?";
conn = JdbcUtil.getConnection();
QueryRunner qr = new QueryRunner();
// 使用DbUtils 中已经封装好的方法(注意好参数)
Student student = qr.query(conn,sql, new BeanHandler<Student>(Student.class),29);
System.out.println(student);
conn.close();
}
----------------------------------------------------------------------------------------
jdbc连接数据库的方式:
--》基础做法
public class Demo1 {
private String url = "jdbc:mysql://localhost:3306/demo";
private String user = "root";
private String password = "root";
public void test() {
try {
// 1.驱动
Driver driver = new com.mysql.jdbc.Driver();
// 设置用户名和密码
Properties props = new Properties();
props.setProperty("user", user);
props.setProperty("pwd", password);
// 2.连接数据库
Connection conn = driver.connect(url, props);
System.out.println(conn);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
--》优化做法(封装成一个工具类)
public class JdbcUtil {
private static String url = "jdbc:mysql:///jdbc_demo";
private static String user = "root";
private static String password = "root";
public static Connection conn;
public static Statement stat;
public static ResultSet rs;
// 连接
public static Connection getConnection(){
try {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 连接数据库
return DriverManager.getConnection(url,user,password);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void close(){
try {
if (rs != null){
rs.close();
rs = null;
}
if (stat != null){
stat.close();
stat=null;
}
if (conn != null){
conn.close();
conn=null;
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
JDBC总结(含DbUtils组件)的更多相关文章
- BenUtils组件和DbUtils组件
BenUtils组件和DbUtils组件 [TOC] 1.BenUtils组件 1.1.简介 程序中对javabean的操作很频繁,所有Apache提供了一套开源api,方便javabean的操作!即 ...
- DbUtils组件
DbUtils组件 DbUtils组件, 1. 简化jdbc操作 2. 下载组件,引入jar文件 : commons-dbutils-1.6.jar |-- DbUtils 关闭资源.加载驱动 |-- ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- 如何在JDBC Connection Configuration配置组件上添加控件
如何在JDBC Connection Configuration配置组件上添加控件 最近项目刚上线,闲来无事又把Jmeter的源码拿出来研究研究,最初的目的是想扒一扒Jmeter里数据库处理的逻辑是怎 ...
- 【JDBC&Dbutils】JDBC&JDBC连接池&DBUtils使用方法(重要)
-----------------------JDBC---------- 0. db.properties文件 driver=com.mysql.jdbc.Driver url=jdbc: ...
- JDBC连接池&DBUtils使用
使用连接池改造JDBC的工具类: 1.1.1 需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...
- JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表
本文目录: 1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData 2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData ...
- 开源JDBC工具类DbUtils
本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUti ...
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
随机推荐
- 非常强大的table根据表头排序,点击表头名称,对其内容排序
js代码: /** * 通过表头对表列进行排序 * * @param sTableID * 要处理的表ID<table id=''> * @param iCol * 字段列id eg: 0 ...
- 安装Oracle问题总结
Oracle安装很多次,这次是最郁闷. 第一次安装失败,考虑可能是软件问题(以往学生给的软件),重新从官网下载 快下载完时,360清理电脑垃圾空间,手残,关闭浏览器,又开始重新下载 下载的同时,我开始 ...
- Samba快速配置
Samba是linux,unix,windows之间进行交互操作的软件组件,Sanma是基于GPL协议的自由开源软件. 快速配置samba文件服务器 1.关闭防火墙和SELinux [root@cen ...
- win7下matlab2016a配置vlfeat
1.下载vlfeat http://www.vlfeat.org/ 2.解压到了matlab安装目录的toolbox下 3.打开vs2013的这个 4.输入nmake version 查看我的版本是 ...
- win7下matlab2016a配置libsvm
1.下载libsvm https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 2.解压到matlab2016a的安装目录的toolbox下 例如我的D:\Program ...
- MFC编辑框字体大小调节(转)
在学习MFC中需要调整编辑框中的字体大小,以下是我结合网上与自己实际操作总结的,希望对其它同学有所帮助. 首先,了解以下函数原型:BOOL CreateFont( int nHeight, ...
- 数据持久化以及DAO模式的简单使用
持久化:(是将程序中的数据在瞬时状态和持久状态间转换机制) 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然 ...
- Nginx与Lua利用fpm打成rpm包
1.下载相关软件 需要软件有:Nginx,LuaJIT,ngx_devel_kit,ngx_lua等安装文件 安装Lua或者LuaJIT都是可以的,但是出于效率的考虑,推荐安装LuaJITshell& ...
- 微信小程序实例
看到小程序,那么火,自己也想动手写一个.但是没有很好的api接口.有一天看到一个开发安卓的朋友,写了一个干货集中营的小程序.就搜了一下.看到api是免费开放的.于是自己也动手写了一个. 具体的微信小程 ...
- hive相关
HIVE JOIN:http://blog.csdn.net/yfkiss/article/details/8073608 HIVE资料: 一条记录map阶段输出KV,shuffle sort,输出K ...