第二阶段(四)——JDBC总结

一、JDBC概述
1、什么JDBC?为什么要学习JDBC?
JDBC: JDBC数据库连接
其实就是用来java语言或者java程序连接并访问数据库的一门技术
虽然我们之前通过cmd或者Navicat等工具也可以连接访问数据库,但是在企业开发中,我们更多的是通过程序,通过Java程序连接访问数据库,就需要JDBC这门技术!
2、JDBC的快速入门:查询jt_db.account表中的所有数据
2.1.准备数据: 执行课前资料中的 “sql脚本文件.txt” 文件中的所有SQL语句
jt_db库(account/user/stu/acc)

2.2.创建项目,并导入mysql驱动包

2.3.创建一个java程序,通过六个步骤实现jdbc程序
	//注册数据库驱动
	//获取数据库连接
	//获取传输器
	//发送sql语句到服务器执行,返回执行结果
	//处理结果
	//释放资源

二、JDBC增删改查
junit单元测试:可以在不写main函数的情况,也不用创建类的实例,就可以执行该类中的方法
junit单元测试测试的方法必须满足:
方法必须是公共的
方法必须是非静态的
方法必须是无返回值的
方法必须是无参数的

三、PreparedStatement对象
1、模拟用户登录的案例
引出SQL注入攻击问题
2、SQL注入攻击:是早些年网络中非常常见的一种网络攻击方式
原因是因为:SQL语句中的参数(比如用户名或密码)是用户提交过来的,用户在提交参数时,参数中可能会掺杂一些SQL关键字或者特殊符号,这些关键字和特殊符号可能会导致SQL语句的语义发生变化,从而产生一些意外的操作!
3、可以使用PreparedStatement对象代替Statement对象解决SQL注入攻击问题!
PreparedStatement对象是先将SQL语句的骨架(包含问号的SQL语句)发送给服务器编译并确定下来,
而SQL语句一旦编译就不能再被篡改了,后面再将SQL语句中的参数发送给服务器,将占位符(问号)替换成参数
即使SQL参数中再包含SQL关键字或者特殊符号,也不会影响SQL语句的骨架,只能被当成普通的文本执行!

四、数据库连接池(数据源)
1、什么是连接池
池: 是一个容器,也是内存中的一片空间
连接池: 就是存放连接资源的容器, 把连接对象存放在一个容器中, 供整个程序共享, 可以实现连接的复用, 减少连接创建和关闭的次数, 提高程序执行的效率。

2、为什么要使用连接池
在传统方式中(不使用连接池),每次用户需要连接,都是创建一个连接并使用,用完之后再关闭连接,而每次创建连接和关闭连接都是非常耗资源而且耗时间的操作,因此会导致程序的效率低下.
使用连接池: 可以在程序一启动时,就创建一个连接池(对象),并往连接池中放入一批连接。当用户需要连接时,可以直接从连接池中获取一个连接对象,进行使用,用完之后,不要关闭连接,而是将连接还回到连接池中。这样一来所有用户在访问时都可以使用连接池中的连接资源,可以实现连接的复用, 减少连接创建和关闭的次数, 提高程序执行的效率。

3、如何使用C3P0连接池
3.1.导入c3p0的jar包
3.2.在程序中创建一个连接池对象(会存放一批连接资源)
3.3.配置连接数据库的基本信息
方式一: 直接通过set方法设置连接参数,不推荐
方式二: 将连接参数提取到源码根目录下的c3p0.properties文件中
方式三: 将连接参数提取到源码根目录下的c3p0-config.xml文件中
3.4.基于连接池获取一个连接对象,并进行使用
3.5.释放资源
JdbcUtil.close(conn, ps, rs);
/* 如果是自己获取(创建)一个连接对象,这个连接对象是没有经过改造的
* 是原生的Connection,调用conn.close方法就是将连接关闭!
* 如果是从连接池中获取的连接对象,这个连接对象在获取时,就已经被
* 连接池改造过了,此时调用conn.close方法,是将连接还回到连接池中!
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值