JDBC存在的问题及解决办法

一、JDBC操作的步骤

1.导入数据库驱动jar包
2.编写程序
a. 注册驱动(要操作哪种数据库,就要注册哪种数据库的驱动类);
b. 获取连接,连接上数据库
c. 创建SQL执行平台(SQL执行平台提供了执行SQL语句的方法)
d. 执行SQL语句
e. 处理结果
f. 释放资源

二、JDBC存在的问题

1. 重复代码问题,每次操作数据库都需要:

  • 注册驱动
  • 获取连接
  • 释放资源

2. 注册驱动的代码,每次操作数据库都要执行一次,而实际只需要执行一次

3. 硬编码问题,代码中写死了,如果连接的数据库有变化,还需要修改源码:

  • 驱动类名
  • 数据库地址
  • 数据库用户名
  • 数据库密码

4. 存在安全漏洞 (最后一问题见四、预编译对象)

三、解决方法

1. 问题的解决思路

  • 重复代码问题:提取到一个类,设置成为静态的公用方法,随用随调
  • 注册驱动的代码,只需要执行一次:提取到一个类,放到静态代码块中
  • 硬编码问题:提取到配置文件中,如果数据库有变化,只需要修改配置文件,不需要修改源码

2. 怎么实现(以模拟登录功能为例)

drop database if exists praDay01;
create database praDay01 character set utf8;
use praDay01;

DROP TABLE IF EXISTS USER;
CREATE TABLE USER(
	id INT PRIMARY KEY AUTO_INCREMENT,
	username VARCHAR(20),
	PASSWORD VARCHAR(50),
	NAME VARCHAR(10),
	birthday DATE,
	age INT,
	sex CHAR(1)
) CHARACTER SET = utf8 COLLATE = utf8_general_ci;
INSERT INTO USER(id,username,PASSWORD,NAME,birthday,age,sex) VALUES (NULL, 'xiaohong', 'xiaohong', '小红', '1999-09-09', 20, '男');
INSERT INTO USER(id,username,PASSWORD,NAME,birthday,age,sex) VALUES (NULL, 'xiaolan', 'xiaolan', '小兰', '1997-09-09', 22, '女');
INSERT INTO USER(id,username,PASSWORD,NAME,birthday,age,sex) VALUES (NULL, 'xiaolv', 'xiaolv', '小吕', '1999-09-09', 20, '女');
INSERT INTO USER
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值