1、JDBC是干啥的?
简而言之,jdbc是操作数据库的一套api。 那啥是api? 就是一套接口,提供了一些类和方法。 通俗的讲,jdbc就是帮助Java程序连上数据库然后进行增删改查。话不多说,直接上图。
java程序不像navicat.workbench 这些数据库的客户端、可以连接数据库的。java程序想直接连数据库需要获取到不同数据库的驱动(官方提供的)才可以连接数据库进行操作。那啥是驱动啊?就类似我们电脑摄像头,安上驱动才可以使用。那数据库驱动,道理一样。只不过这些驱动是官方提供的一些实现类,以jar包形式给我们,编译好的.Class文件。它们实现JDBC这套接口,完成数据库的连接和操作。真正执行代码的是这套驱动。
2、为啥要用JDBC?
由于不同的数据库底层不一样,我们想连不同的数据库,就要获取不同的数据库驱动,如果没有JDBC 那么每切换一次数据库,JAVA都需要写一套代码。而JDBC解决了这个问题,Java程序连接到jdbc,让JDBC去获取驱动,这样的话,同一套JAVA代码,就可以操作不同类型的数据库,每次切库只需要修改底层数据库即可。
3、JDBC代码实现-四步走?
4、JDBC中API的简单介绍
1、DriverManager(驱动管理类)
作用1、获取驱动。实际上,registerDriver方法是用于注册驱动的。
Driver类中已经执行了 DriverManager
对象的 registerDriver()
方法注册驱动,那么我们只需要加载 Driver 类,这段静态代码块就会执行,也就注册了驱动。
作用2、获取数据库连接。主要是通过DriverManager对象获取connection连接对象,使java代码和数据库建立连接;
2、Connection(数据库连接对象)
作用1.获取执行 SQL 的对象 connection.createStatement (普通sql) prepareStatement(预编译)作用2.管理事务 三个方法:事务的开启(setAutoCommit)、提交(commit)、回滚(rollback)
3、 Statement 执行sql语句
如executeUpdate、executeQuery等方法,statement在拼接sql时是不安全的,容易造成sql注入;
那啥是sql注入? 举例,黑客登陆你内部系统时,使登录条件永真,如在where后加 or 1=1 则可以随意登录你的系统。 使用PreparedStatement可以预防sql注入
4、ResultSet 返回的是结果集。
对象常用方法有resultSet.next() 返回值是 boolean (true 当前行有数据;false 当前行无数据)
getXxx(参数):获取数据
xxx : 数据类型;如: int getInt(参数) ;String getString(参数)
nt类型的参数:列的编号,从1开始. String类型的参数: 列的名称
5、数据库连接池的简单介绍
我把数据库的连接比作你打开一个软件,关闭连接比作叉掉这个软件。 之前我们代码中使用连接都是先创建一个Connection对象(也就是打开了软件),使用完毕就会将其销毁(叉了软件)。这样重复创建销毁是耗费计算机的性能和时间的。使用了数据库连接池后,也就是这个软件提前打开,谁用谁直接点进去。(不用重复的点开和叉掉了) 那么也就是提高Connection对象的复用率。
常用的是阿里巴巴提供的Druid连接池,好用,功能强大,以及C3P0、DBCP等。
1、 数据库连接池优点
1 资源复用 数据库连接池类似线程池,提前创建好放在那里,谁用谁取
2 提升系统响应速度 我们不用每次连数据库都要去创建connection了,所有请求时间变少了
3 避免数据库连接遗漏 数据库连接都是有最大连接数的,如果都连满了,那么别人就连不上了。
2、如何使用?
直接看上面代码就可以了,很简单,需要直接复用即可,看到这的朋友给我点赞吧!!
jar包和配置文件在百度网盘 需要请自取!
Druid jar包及配置文件