关于JDBC的学习笔记,什么是JDBC、JDBC的使用连接步骤、数据库连接池、C3P0连接池、Druid连接池、JDBCTempla,超详细超完整

JDBC

1.什么是JDBC:

​ 全称: Java DataBase Connectivity
​ 翻译: java 数据库连接
​ 理解: Java语言来操作数据库

JDBC本质: 其实就是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口.
各大数据库厂商去实现这套接口,提供数据库驱动jar包.
我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类.

2.JDBC的使用连接步骤:

​ a.导入驱动jar包
​ b.注册驱动
​ c.获取数据库连接对象 Connection
​ d.定义sql
​ e.获取执行sql语句的对象 Statement
​ f.执行sql,接收返回结果
​ g.处理结果
​ h.释放资源

JDBC规范:
  1.导入jar包
  2.加载驱动 com.mysql.cj.jdbc.Driver
  3.获取连接 DriverManager -> Connection
  	url username password
  	url -> jdbc:mysql://localhost:3306/database
  	       jdbc:mysql:///database
  4.定义sql
  	Statement / preparedStatement(预编译对象)
  5.执行sql:
  	execute() -> boolean
  		DQL/DML/DDL
  	executeUpdate() -> int
  		DML
  	executeQuery() -> ResultSet
  		DQL
  6.如果有结果,处理结果ResultSet -> next()
  7.释放资源

prepareStatement(预编译对象)
	select * from user where id = ?


JDBC的封装 -> 封装成工具类 -> 配置文件

3.详解各个对象

1)DriverManager: 驱动管理对象

​ 作用:
​ a.注册驱动:告诉程序该使用哪一个数据库驱动jar
​ b.获取数据库连接

2)Connection对象: 数据库连接对象

​ 作用:
​ a.获取执行sql 的对象
​ Statement createStatement()
​ b.管理事务:
​ 手动开启事务:setAutoCommit(boolean)
​ 方法参数设置成false.手动开启事务
​ 提交事务:commit()
​ 回滚事务:rollback()

3)Statement对象: 指定sql的对象

​ 执行sql的三个方法:
​ (1).boolean execute(String str)
​ DDL/DML:返回fasle DQL:返回true
​ 返回值: 指的是有没有结果
​ 因为 DML 和 DQL都有专门的执行方法,
​ 所以该方法通常用来指定DDL
​ (2).int executeUpdate(String str)
​ 只能执行DML
​ 返回值: 表示影响了几行
​ (3).ResultSet executeQuery(String str)
​ 只能执行DQL
​ 返回值: 查询出来的结果集

		Connection conn = JDBCutils.getConnection();
        String sql = "insert into user values(?,?,?)";

        PreparedStatement pstmt = conn.prepareStatement(sql);
        for (int i = 0; i < 10; i++) {
            pstmt.setInt(1,i);
            pstmt.setString(2,"张三"+i);
            pstmt.setInt(3,12);
            //不马上执行sql
            //添加到执行sql的队列中
            pstmt.addBatch();
        }
        //pstmt.executeUpdate();
        //批量执行sql队列中的所有语句
        pstmt.executeBatch();
        //清空之前的执行队列
        pstmt.clearBatch();

4.数据库连接池

1.概念:

其实就是一个容器,存放数据库连接的容器

​ 当系统初始化好后,这个容器就会被创建,在容器中会申请一些连接对象

​ 当用户访问数据库时,就会从容器中获取连接对象

​ 当用户访问完之后,会将连接对象归还给容器

2.好处:

​ a.节约资源

​ b.节省内存空间

3.连接池规范(接口):

a.标准接口: DataSource -> javax.sql包
方法:
获取连接: getConnection()
归还连接: Connection.close()

b.市面上常见的连接池
a.Apache - dbcp
b.c3p0
c.阿里 - druid

5.C3P0连接池:

1.使用第三方连接池步骤:

a.导入jar包
c3p0-0.9.5.2.jar
mchange-commons-java-0.2.11.jar
b.定义配置文件:
名称(固定形式): c3p0.properties 或者 c3p0-config.xml

存放配置文件的路径: 必须在类路径的根目录下 - 可以理解成存在文件src目录下

c.创建数据库连接池对象: ComboPoolDtataSource

d.获取连接: getConnection

2.JDBC的连接 和 连接池连接的区别

a.通过连接池获取的连接关闭后,
连接对象返回给连接池,它的引用会设置为null
b.通过JDBC获取的连接关闭后,
连接对象还在,但是状态是’已关闭状态’是不能再使用的.

6.Druid连接池:

1.使用步骤:

a.导入jar包
b.定义配置文件:
是properties形式,可以是任意名称,可以放在任意目录下
(意味着不会自动加载,需要手动调用)
c.加载配置文件. xx.properties
d.获取数据库连接池对象:
通过工厂方式来获取: DruidDataSourceFactory
e.获取连接: getConnection

2.定义工具类

a.定义一个类(类名随意) DruidUtils
b.提供静态代码块加载配置文件,初始化连接池对象
c.提供方法
①.获取连接方法:通过数据库连接池获取连接
②.获取连接池的方法
③.释放资源

练习: 对emp表进行URUD操作
1.增加数据
2.修改数据
3.删除数据
4.查询数据
a.根据id查询
b.查询所有数据
c.查询总数量

7.JDBCTempla

JDBCTemplate -> DBUtils(Apache)

1.Spring框架对JDBC的简单封装

​ 提供了一个JDBCTemplate对象来简化JDBC的开发

2.使用步骤:

a.导入jar包
b.创建JDBCTemplate对象,依赖于DataSource
c.调用JDBCTemplat的方法来完成CRUD操作

3.常用方法:

update():DML语句 增删改操作
queryForMap():查询结果将结果集封装成map集合
queryForList():查询结果将结果集封装成list集合
query():查询结果将结果集封装成JavaBean对象
queryForObject():查询结果,将结果封装成对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值