JavaJDB.C研习教学课件由浅入深

上传人:不*** 文档编号:88037235 上传时间:2019-04-17 格式:DOC 页数:98 大小:1.55MB
返回 下载 相关 举报
JavaJDB.C研习教学课件由浅入深_第1页
第1页 / 共98页
JavaJDB.C研习教学课件由浅入深_第2页
第2页 / 共98页
JavaJDB.C研习教学课件由浅入深_第3页
第3页 / 共98页
JavaJDB.C研习教学课件由浅入深_第4页
第4页 / 共98页
JavaJDB.C研习教学课件由浅入深_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《JavaJDB.C研习教学课件由浅入深》由会员分享,可在线阅读,更多相关《JavaJDB.C研习教学课件由浅入深(98页珍藏版)》请在金锄头文库上搜索。

1、#*目录第一节整理目的3第二节jdbc的概念32.1概念32.2 Jdbc与应用程序的关系32.3 数据库的连接步骤42.4 Quick Start4第三节如何与数据库建立连接63.1 注册驱动63.2 建立数据库的连接83.3 规范Quick Start中的例子10第四节Statement 接口的使用详解124.1 Statement 的常用方法124.2 CRUD操作164.3 Statement有那些缺点19第五节ResultSet接口的使用详解20第六节JDBC 中数据类型详解306.1 基本数据类型306.2 日期类型346.3 CLOB类型366.4 BLOB类型396.5 其他数

2、据类型41第七节DAO设计模式详解417.1 实际项目中如何使用JDBC417.2 DAO设计模式简介427.3 DAO设计模式的实现427.4 DAO设计模式与工厂模式的整合497.5 DAO设计模式测试52第八节JDBC对事务的支持528.1 模拟转账538.2 jdbc默认事务548.3 事务提交与回滚548.4 设置保存点558.5 JTA事务的介绍568.6 数据库的隔离级别介绍568.6.1 未提交读578.6.2 提交读588.6.3 重复读598.6.4 序列化读608.7 小结62第九节PreparedStatement接口的使用62第十节CallableStatement接

3、口的使用629.1 无参无返回值存储过程调用639.2 有参无返回值存储过程调用639.3 有参有返回值存储过程调用649.4 JDBC其他API65第十一节元数据信息6611.1 数据库元数据信息6611.2 参数元数据信息67第十二节批处理的使用6712.1 普通方式插入一千条数据6812.2 批处理方式插入一千条数据69第十三节JDBC其他API7013.1 可滚动结果集7013.2 分页技术7213.3 可更新结果集73第十四节编写一个简单的数据库连接池7414.1 为什么要使用数据库连接池7414.2 数据库连接池雏形7414.2 数据库连接池优化7714.2.1 对线程池加锁771

4、4.2.2 连接不够用时抛出异常7714.3 数据库连接池之代理模式7814.3.1 静态代理7814.3.2 动态代理8414.4 DBCP数据库连接池的使用87第十五节jdbc轻量级封装8815.1 将结果集封装为Map8815.1.1 ResultSetMetaData演示8815.1.2解决多行记录的问题8915.1.3 Map结果集的封装9015.2 将结果集封装为对象9115.2.1 user表POJO的编写9115.2.2 Bean结果集的封装9215.3 将结果集封装为List9415.4 策略模式的应用9615.4.1 Map结果集策略模式应用9615.4.2 Bean结果集

5、策略模式应用9715.4.3 List结果集策略模式应用9815.4.4 单元测试9915.5 模板模式的应用100第十六节近期推出101第一节 整理目的当今orm等全自动针对对象持久化的框架越来越多并且也越来越成熟(ibatis,hibernate,ejb的jpa),但是无奈新东家需要使用jdbc(原始手工作坊)的模式和数据库打交道,用了几年的ibatis,再次使用jdbc发现有些细节和底层的东西自己并不是十分清楚,所以就啰理啰嗦的整理出一份学习笔记,第一作为自己对jdbc重新的复习,第二如果有可能希望给初学jdbc的朋友带来一定的便利,这样也不枉我点点滴滴的记录。随着对jdbc整理和学习的

6、逐渐深入,发现原先使用orm框架时忽略了那么多的细节,这样在出现问题或者学习orm更加深入知识时则会显得力不从心,在本文档将jdbc如何入门阐述清楚之后,增加了如下的内容: 数据库连接池,以及常用连接池的使用(dbcp,c3p0等) 编写一套基于jdbc轻量级的api,方便使用; 如何将查询结果封装为对象; 如何将查询结果封装为Map; 如何将查询结果封装为List; 如何在JDBC的使用中加入策略,模板等模式; 在后面的JDBC高级部分将会讲解到Dbutils源码,Spring对JDBC的强大封装第二节 jdbc的概念2.1概念我最不喜欢替别人整理某个名词的概念了,只要是概念性的东西基本上在

7、任何地方都可以查得到,所以我就通俗的写一些自己对jdbc的理解,所谓jdbc就是java与数据库之间进行通讯的api,也就是一个标准,所以如果一个java应用程序想要和数据库打交道基本上都离不开jdbc,众所周知,一些优秀的orm框架的底层也是采用jdbc进行封装的。2.2 Jdbc与应用程序的关系JdbcAPI所处的位置和它与应用程序之间的关系,下面的一张图再也明显不过了,其中绿色的部分代表jdbcAPI,它提供了很多接口,并且本身也实现了很多方法,可以看到蓝色的部分就是各个数据库厂商自己对jdbcAPI的一些实现,这就是我们常见的数据库连接驱动,这是使用jdbc程序进行开发必不可少的东西。

8、2.3 数据库的连接步骤1. 注册驱动 (Driver)2. 建立连接(创建Connection)3. 创建执行sql语句(通常是创建Statement或者其子类)4. 执行语句5. 处理执行结果(在非查询语句中,该步骤是可以省略的)6. 释放相关资源在后文中,将会对上述几个步骤一一进行讲解,希望读者能够仔细阅读;2.4 Quick Start好了,了解了一下jdbc的基本概念,相比对jdbc已经有了一个感性的认识,现在我们为了直观期间,直接来上一段代码了解一下jdbc最简单的程序如何进行开发的。在该小节中,我们以一个简单的增删改查为例进行说明,然后会将该章节中涉及的各个常用以及关键的API进

9、行详细的讲解;首先我们创建一个数据表,在test数据库下,见表语句为 create table user(id integer primary key, name varchar(30) , birthday date, money float);插入两条语句l insert into user values(2,zhangsan,2010-01-01,15000);l insert into user values(1,wangwenjun,1984-06-09,8500.00);好了,数据准备好了,我们通过一个完整的例子讲上述中数据库的连接步骤进行一个演示,在本例子中,初学者可能有些地方会

10、觉得陌生,看不明白,不用着急,在后文中会对涉及的知识点逐个进行讲解Testpublic void wholeExample()try /1.注册驱动Class.forName(com.mysql.jdbc.Driver);/2.获取数据库连接Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/test, root,r66t);/3.创建执行句柄Statement stmt = conn.createStatement();/4.执行sql语句ResultSet rs = stmt.executeQue

11、ry(select * from user);/5.处理执行结果while(rs.next()System.out.println(id:+rs.getInt(1)+tname:+rs.getString(2)+tbirthday:+rs.getDate(3)+tmoney:+rs.getFloat(4);/6.释放资源rs.close();stmt.close();conn.close(); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();执行结果

12、如下id:1name:wangwenjunbirthday:1984-06-09money:8500.0id:2name:zhangsanbirthday:2010-01-01money:15000.0第三节 如何与数据库建立连接3.1 注册驱动l 第一种注册方式通常来说,注册驱动的方式有三种,下面我们将一一进行介绍,首先来看看直接调用DriverManager的registerDriver方法进行加载驱动,在本文中所有的程序均是在mysql数据库上进行演示的。示例代码如下Testpublic void registDriver1()try DriverManager.registerDriv

13、er(new com.mysql.jdbc.Driver();Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/test, root,r66t);Assert.assertEquals(false, conn.isClosed(); catch (SQLException e) e.printStackTrace();执行结果为可以看到,当前我们的程序与数据库的连接是正常的。l 第二种注册方式Testpublic void registDriver2()try System.setProperty(

14、jdbc.drivers, com.mysql.jdbc.Driver);Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/test, root,r66t);Assert.assertEquals(false, conn.isClosed(); catch (SQLException e) e.printStackTrace();执行结果为可以看到,当前我们的程序与数据库的连接是正常的。l 第三种注册方式Testpublic void registDriver3()try Class.forName(com.mysql.jdbc.Driver);Connection conn = DriverManager.getConnection(jdbc:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号