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) 一 ...
随机推荐
- AtCoder Beginner Contest 126
因为本人rating太低,这场比赛还要记rating就来划水了,果然垫底了. 6题都很水,于是头一次在网赛中AK,不过由于网卡+手速太慢还是成功垫底. ABE 签到.不贴代码了,因为A考察字符串读入和 ...
- DRF认证、自定义认证和权限、自定义权限
源码分析 """ 1)APIView的dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial( ...
- 迅为iTOP-3399开发板Ubuntu基本设置
基于迅为iTOP3399开发板虚拟机需要根据用户的实际情况,进行网络设置以及其他一些基本的设置.VMware10.0.1 和 Vmware8.0.3 联网和基本设置类似.下面先详细讲解一下,虚拟机的一 ...
- day42-进程池
#进程池Pool:apply apply_async-close-join-get map callback #1.进程池Pool:执行下面代码发现任务012先执行,345后执行,因为进程池只有3个进 ...
- 03-kubeadm初始化Kubernetes集群
请求地址https://pc-shop.xiaoe-tech.com/appc7XFLu4K9234/video_details?id=v_5b615b9e432f5_DXDGopmB
- java连接access的用户名、密码异常Decoding not supported解决
Java通过ucanaccess对Access数据库.accdb文件连接: public static Connection getConn() { try { String dbURL = &quo ...
- 量化预测质量之分类报告 sklearn.metrics.classification_report
classification_report的调用为:classification_report(y_true, y_pred, labels=None, target_names=None, samp ...
- [LC] 345. Reverse Vowels of a String
Write a function that takes a string as input and reverse only the vowels of a string. Example 1: In ...
- sqlserver中的数据导到mysql相关
一.在sqlserver中生成数据表脚本,粘贴到记事本中,如下语法要进行替换 1.int IDENTITY (1, 1) NOT NULL——>id int unsigned NOT NULL ...
- Oracle 11g 静默安装过程(centos7)
开启机器,本次实例分配的ip是:192.168.3.197(Xshell ssh连接) 2 安装unzip 工具.vim编辑器(个人习惯,vi也可以) 3 在/etc/hosts文件中添加本机IP跟主 ...