
JDBC系列文章
从基础讲Java如何通过JDBC连接操作数据库
散场前的温柔
个人网站:https://www.tqazy.com,
邮箱:2451203736@qq.com,
扣扣群:1080617321,
有什么问题可以邮箱交流哦,私信可能不能及时回复呢
展开
-
00. JDBC系列目录
目录 01. JDBC基础 — 读取配置文件连接多种数据库的JDBC通用连接程序 02. JDBC基础 — 使用DriverManager优化jdbc连接不同数据库的需求原创 2020-03-25 11:03:55 · 416 阅读 · 0 评论 -
19. JDBC连接池 — Druid数据库连接池
JDBC连接池 —— Druid数据库连接池1. Druid简介Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Druid是一个JDBC组件,它包括三个部分:基于Filter-Chain模式的插件体系DruidDataSource 高原创 2020-05-19 11:35:18 · 946 阅读 · 0 评论 -
18. JDBC连接池 — C3P0数据库连接池
JDBC连接池 —— C3P0数据库连接池1. DBCP简介C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。如果需要使用该连接池实现,应在系统中添加如下一个jar文件:c3p0.jar:连接池的实现(比如:c3p0-0.9.1.2.jar)2. 使用C3P0的步骤加入jar包:c3p0.jar创建C3P0数据源:new ComboPooledDataSource();原创 2020-05-19 11:31:48 · 433 阅读 · 0 评论 -
17. JDBC连接池 — DBCP数据库连接池
JDBC连接池 —— DBCP数据库连接池1. DBCP简介DBCP是Apache软件基金组织下的开源连接池实现,该连接池依赖该组织下的另一个开源系统:Common-pool。如果需要使用该连接池实现,应在系统中添加如下两个jar文件:Commons-dbcp.jar:连接池的实现Commons-pool.jar:连接池实现的依赖库Tomcat的连接池正是采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可以有应用程序独立使用。2. 使用DBCP的步骤加入jar包依原创 2020-05-19 11:27:31 · 330 阅读 · 0 评论 -
16. JDBC连接池 — 数据库连接池简介
JDBC连接池 —— 数据库连接池简介(connection pool)1. JDBC直接连接操作数据库的弊端在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:在主程序(如servlet、bean)中建立数据库连接进行sql操作断开数据库连接这种模式开发,存在的问题:普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向原创 2020-05-19 11:23:55 · 335 阅读 · 1 评论 -
15. JDBC进阶 — 批量处理JDBC语句提高处理速度
JDBC进阶 —— 批量处理JDBC语句提高处理速度当需要成批插入或者更新记录时,可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率。JDBC的批量处理语句包括下面两个方法:addBatch(String); 添加需要批量处理的SQL语句或是参数executeBatch(); 执行批量处理语句通常我们会遇到两种批量执行SQL语句的情况:多条SQL语句的批量处理一个SQL语句的批量传参MySQL不太适用这种批量处理,效果原创 2020-05-19 11:17:32 · 399 阅读 · 0 评论 -
01. JDBC基础 — 读取配置文件连接多种数据库的JDBC通用连接程序
JDBC基础 —— 读取配置文件连接多种数据库的JDBC通用连接程序持久化就是将数据从"掉电丢失"的内存保存到"掉电不丢失"的数据库的过程数据库存取技术分为:JDBC直接访问数据库JDO技术第三方O/R工具,如:Hibernate,mybatisJDBC是其他技术的实现基石JDBC是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API)JDBC只...原创 2020-03-25 11:01:02 · 632 阅读 · 0 评论 -
03. JDBC基础 — 通过Statement执行更新操作
JDBC基础 —— 通过Statement执行更新操作Statement用于执行 SQL 语句的对象通过 Connection 的 createStatement() 方法获取通过 executeUpdate(sql) 执行 SQL 语句传入的 SQL 可以是 INSERT,UPDATE 和 DELETE,但是不能是 SELECT执行了SQL之后会返回一个int类型的数值,这个值...原创 2020-03-25 11:11:42 · 580 阅读 · 0 评论 -
02. JDBC基础 — 使用DriverManager优化jdbc连接不同数据库的需求
JDBC基础 —— 使用DriverManager优化jdbc连接不同数据库的需求优化上一个程序,不直接使用Driver,而使用SQL给我们提供的DriverManager类DriverManager是数据库驱动的管理类好处:可以通过DriverManager中重载的getConnection()方法直接获取数据库连接,比较方便可以同时管理多个不同的驱动程序,即同时管理不同类型的数...原创 2020-03-25 11:12:46 · 422 阅读 · 0 评论 -
04. JDBC基础 — 通过ResultSet执行查询操作
JDBC基础 —— 通过ResultSet执行查询操作ResultSet结果集,封装了使用JDBC查询的结果通过调用Statement对象的executeQuery(sql)方法创建该对象ResultSet对象以逻辑表的形式封装了执行数据库操作的结果集,ResultSet接口的实现有数据库厂商提供ResultSet 对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,...原创 2020-03-25 11:14:56 · 497 阅读 · 0 评论 -
05. JDBC基础 — 以面向对象的思想编写JDBC程序
JDBC基础 —— 以面向对象的思想编写JDBC程序 其实本章也没什么技术性的知识点,只是使用面向对象的方式去举例添加一条数据 前面的几章都是我们写好的SQL语句直接执行的,但是现实中我们不可能指望用户去编写SQL,我们可能需要从控制台或者前端获取一个对象,一个实体类对象,我们需要程序能直接添加实体类,而不是我们去手写SQL 所以我们需要写一个灵活的SQL,可以根据传输进来的对象实...原创 2020-03-25 11:25:05 · 466 阅读 · 0 评论 -
06. JDBC基础 — 通过PreparedStatement执行更新操作
JDBC基础 —— 通过PreparedStatement执行更新操作为什么要使用PreparedStatement? 使用Statement需要拼写SQL语句,很辛苦,而且容易出错Statement:上一章里使用Statement方式的SQL:String sql = "INSERT INTO user (name, password, age, remark) VALUES (...原创 2020-03-25 11:27:38 · 2072 阅读 · 0 评论 -
07. JDBC基础 — 通过PreparedStatement执行查询操作
JDBC基础 —— 通过PreparedStatement执行查询操作本章目的和提示使用PreparedStatement实现占位符查询本文基于第五章的代码基础上结合第六章进行更新本章以下内容保持和第五章相同:数据库结构和数据项目结构User类pom.xmldatabase.propertiesPropertiesUtils类本章更新的内容:JDBCUtils类...原创 2020-03-25 11:31:21 · 944 阅读 · 0 评论 -
08. JDBC基础 — 利用反射及JDBC元数据编写通用的查询方法
JDBC基础 —— 利用反射及JDBC元数据编写通用的查询方法为什么要用反射?上一章,我们使用PreparedStatement执行查询数据库操作,但是却存在缺陷,我们这一期就解决这些问题那么有哪些问题呢?JDBCUtils的select()方法缺乏普适性,不再是通用的查询方法如果将结果集ResultSet的放到调用层解析那么就存在耦合的现象,我们需要解耦如果不解析,那么我们可能...原创 2020-03-25 15:40:14 · 586 阅读 · 0 评论 -
09. JDBC基础 — DAO设计模式
JDBC基础 —— DAO设计模式什么是DAO设计模式? 上面几章下来,其实我们已经差不多完成了DAO的基础了,我们在第6章和第8章已经实现了使用面向对象的思想通过JDBC对数据库进行了更新操作(INSERT、UPDATE、DELETE)和查询操作(SELECT); 其中我们在第8章中JDBCUtils类的select()方法返回的是List集合,而我们平时有可能只需要查询返回一个对...原创 2020-03-25 15:44:06 · 218 阅读 · 0 评论 -
10. JDBC进阶 — JDBC元数据
JDBC进阶 —— JDBC元数据 —— DatabaseMetaData类和ResultSetMataData类一、我们能获得哪些JDBC元数据? Java通过JDBC获得连接以后,得到一个Connection对象,可以从这个对象里获得有关数据库关系系统的各种信息,包括数据库中的各种表,表中的各个列,数据类型,触发器,存储过程等各方面的信息。根据这些信息,JDBC可以访问一个实...原创 2020-03-25 15:46:55 · 216 阅读 · 0 评论 -
11. JDBC进阶 — 获得插入数据的主键值
JDBC进阶 —— 获得插入数据的主键值获取数据库自动生成的主键值在第6章的JDBCUtils的update()方法基础上进行的改进下面介绍一下Connection类的.prepareStatement(sql)方法的重载方法prepareStatement(String sql, int autoGeneratedKeys)。参数1:还是原来的sql不变参数2:是是否返回主键值的标...原创 2020-03-25 15:49:42 · 366 阅读 · 0 评论 -
12. JDBC进阶 — 处理Blob(存文件)
JDBC进阶 —— 处理Blob(存文件)我们主要讲解MySQL BLOB一、Oracle LOB LOB,即Large Objects(大对象),是用于存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的数据) LOB分两种类型:内部LOB和外部LOB内部LOB将数据以字节流的形式存储在数据库的内部。因而,内部LOB的许多操作都可以参与事务,也可以像处...原创 2020-03-25 15:54:37 · 655 阅读 · 0 评论 -
13. JDBC进阶 — 数据库事务
JDBC进阶 —— 数据库事务一、事务的概念和操作 在数据库中,所谓事务是指一组逻辑操作单元,是数据从一种状态变换到另一种状态。 为确保数据库中数据的一致性,数据的操作应当是离散的成组的逻辑单元;当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。也就是,这一组操作要么全部成功,要么全部不成功。...原创 2020-03-25 15:58:17 · 192 阅读 · 0 评论 -
14. JDBC进阶 — 数据库事务的隔离级别
JDBC进阶 —— 数据库事务的隔离级别一、概念说明 对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题:脏读:对于两个事务T1、T2,T1读取了已经被T2更新但还没有被提交的字段之后,若T2回滚,T1读取的内容就是临时且无效的;不可重复读:对于两个事务T1、T2,T1读取了一个字段,然后T2更新了该字段之后,T1再次读取同...原创 2020-03-25 18:10:54 · 272 阅读 · 0 评论