JDBC阶段总结
一、JDBC的概念:Java DataBase Connectivity用Java语言操作数据库(通过SQL)
二、数据库的驱动和JDBC的关系
三、编写JDBC的步骤:
a、注册驱动
b、建立与数据库的链接
c、创建代表语句的对象
d、执行语句
e、如果有结果集,进行遍历
f、释放资源
四、JDBC相关类和接口的详解
1、DriverManager
注册驱动
获取与数据库的链接
2、Connection
所有的与数据库的交互都是基于该接口
功能:
创建代表SQL语句的对象(普通语句,预编译语句,调用存储过程)
事务控制
事务隔离级别控制
数据库元数据信息的获取
3、Statement
执行SQL语句:executeQuery executeUpdate
执行批处理
4、ResultSet
应该把查询到的结果封装到JavaBean中
5、PreparedStatement(首选)
参数采用占位符
防止sql注入
预编译SQL语句,执行效率高
五、释放资源
抽取了JDBC工具类(切换数据库方便)
编码有模板
六、基本的CRUD操作
七、在真实案例中写了一个Dao实现(用户注册和登录案例)
八、JavaWeb案例:客户信息管理 CRUD
九、大数据的存取:Clob和Blob
十、批处理SQL语句:提高数据库的利用率(执行效率)
十一、JDBC如何调用数据库中的存储过程
SQL: {call 存储过程名(?,?)}
输入参数要给值;输出参数要注册数据类型(java.sql.Type)
十二、事务入门
MySQL:start transaction;commit;rollback;
JDBC:conn.setAutocommit(false) commit() rollback()
十三、事务的特性(原子性 一致性 持久性 隔离性)
十四、隔离性专题:
概念:脏读、不可重复读、虚读
防止这些不正确的情况,通过调整隔离级别:
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE
级别越高,效率越低,同时数据越安全
开启事务前必须设置隔离级别
十五、链接池原理
连接池:提高效率
包装设计模式
动态代理
十六、开源数据源
DBCP
C3P0
获取TomcatJNDI中的数据源:会配置
十七、数据库元数据信息的获取(为编写框架做准备)
十八、编写自己的JDBC框架(只是对JDBC编码进行了简化)
策略设计模式:ResultSetHandler接口
十九、DBUtils框架QueryRunner的基本使用
批处理;查询;DML
二十、DBUtils中的ResultSetHandler的实现类详解
封装的是结果集
二十一、ThreadLocal(很重要。线程局部变量)
二十二、实际开发中如何控制事务
1、DAO只负责CRUD
2、面向切面编程:借助动态代理
二十三、利用DBUtils进行多表操作(对学习Hibernate非常有帮助)
一对多
多对多
一对一
重点:表如何设计;类如何设计;他们间的对应关系必须清楚
表的关系通过外键进行关联
对象间的关系通过关联进行引用的
二十四、大结果集的分页(提高效率)
MySQL:limit M,N
M开始记录的索引
N每次取多少条
抽取了公用的代码:Page.java Page.jsp
JDBC阶段总结的更多相关文章
- 框架基础之Hibernate简介
框架基础之Hibernate简介 1.什么是Hibernate? Hibernate是一个开发源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,使得程序员可以随心所欲地使用对象编程思维来 ...
- 菜鸟学习Hibernate——持久层框架
一.Java操作数据库的阶段. Java对数据库进行操作经历了三个阶段. 1.1操作JDBC阶段 这个阶段就是利用JDBC类来操作数据库.这个阶段出现了两个问题: 代码过度重复:在每一次数据库操作的是 ...
- JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 1
原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7703679.html ------------------------------------ ...
- 开放源代码的设计层面框架Spring——day01
spring第一天 一.Spring概述 1.1spring概述 1.1.1spring介绍 Spring是分层的Jav ...
- JPA + SpringData 操作数据库--Helloworld实例
前言:谈起操作数据库,大致可以分为几个阶段:首先是 JDBC 阶段,初学 JDBC 可能会使用原生的 JDBC 的 API,再然后可能会使用数据库连接池,比如:c3p0.dbcp,还有一些第三方工具, ...
- (转)JPA + SpringData
jpa + spring data 约定优于配置 convention over configuration http://www.cnblogs.com/crawl/p/7703679.html 原 ...
- JPA、SpringData JPA 、Hibernate和Mybatis 的区别和联系
一.JPA 概述 1. Java Persistence API(Java 持久层 API):用于对象持久化的 API 2. 作用:使得应用程序以统一的方式访问持久层 3. 前言中提到了 Hibern ...
- Hibernate入门步骤及概念
1.什么是Hibernate Hibernate是一个开发源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,使得程序员可以随心所欲地使用对象编程思维来操纵数据库.Hibernate可以应 ...
- mybatis第二天——动态SQL与关联查询
大纲摘要: 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If b) Where c) Foreach d) Sql片段 3.关联查询 a) 一对一关联 b) 一 ...
随机推荐
- EXAM-2018-08-21
EXAM-2018-08-21 自己真的是菜的恐怖 D:Fence Building 欧拉公式:V-E+F=2 在平面中:V为顶点个数,E为边数,F为区域数 在简单几何体中:V为顶点个数,E为边数,F ...
- iOS 自定义只有年月的DatePikerView
头文件: @interface YearMonthPikerView : UIView @property (nonatomic,copy) void(^cancelBlock)(); @proper ...
- day39-进程-队列
#队列Queue:进程之间数据是隔离的,不共享的,但是通过multiprocessing的Queue可以实现进程之间的通信. #1.先进先出:把1 2 3放到队列里,按1 2 3的顺序拿出来. fro ...
- vue实现tab选项卡切换
上代码: <template> <div class="push"> //点击按钮 <div class="tab&qu ...
- Number of Digit One(Medium)
1.算法说明: 如3141592,在m(digitDivide)=100时,即要求计算百位上"1"的个数 其中a为31415,b为92,31415中出现了3142次"1& ...
- android形状属性、锁屏密码、动态模糊、kotlin项目、抖音动画、记账app、视频播放器等源码
Android精选源码 直观了解Android的"形状"属性如何影响Drawable的外观. 一个灵活的视频播放器, 可替换播放器内核. android锁屏输入密码功能源码 背景动 ...
- 4)在url中加上a分发参数,用来选哪一个函数
文件关系目录展示: 然后代码改动部分展示: zixun.controller.class.php <?php //header('Content-type:text/html;charset=u ...
- python数据类型:元组
python数据类型:元组 python的元组与列表类似,但是元组的元素不能修改 元组使用小括号,列表使用大括号 元组创建简单,只需要在括号中添加元素,使用逗号隔开 创建元组: tup1 = (50, ...
- 3dmax2014卸载/安装失败/如何彻底卸载清除干净3dmax2014注册表和文件的方法
3dmax2014提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dmax2014失败提示3dmax2014安装未完成,某些产品无法安装,也有时候想重新安装3 ...
- ospf实验
以上是实验要求和实验拓扑 R1到R5的ip自己配置了 1. #int loopback 0 #IP add 1.1.1.1 24 2.基本命令R5例: #ospf 1 router-id 5.5.5. ...