1. 概述
JDBC(Java Database Connectivity, java数据库连接), 是一种用于执行SQL语句的java API,
背景: 最开始java要访问数据库,每种数据库都有自己的驱动, 开发者需要学习多种不同的驱动很麻烦, SUN公司制定了JDBC标准,其他数据库厂商的驱动基于JDBC标准继承和实现JDBC的接口和方法, 这样我们只要学习JDBC就可以了 ;
2 JDBC的种类
原生JDBC
C3P0 连接池
DRUID 连接池(国内性能最高,使用此连接池)
3 原生JDBC
操作步骤:
-
注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
//底层源码,Driver中有一个静态代码块进行了注册操作,所以直接获取类对象,加载到内存直接完成了注册. -
获取连接
String url=“jdbc:mysql://localhost:3306/数据库名字”;
String user=“root”;
String pwd=“root”;
Connection connection=DriverManager.getConnection(url,user,pwd); -
获取执行平台
Statement statement=connection.createStatement(); -
执行sql:
String sql=“定义sql语句”;
statement.executeUpdate(sql); //增删改用这个方法
ResultSet resultSet=statement.executeQuery(sql); //查找 用这个方法, 同时查需 要处理查询结果集
-
处理结果集
resultSet.getObject(key); -
关闭资源
resultSet.close();
statement.close();
connection.close();
4 SQL注入小问题介绍
举例:
需求:
(1) 使用javaSE模拟控制台输入用户名和密码
(2) 数据库中新建数据库database01, 新建表格user, 表格有两个键值
username= admin
password = 123
(3) 运行程序, 控制台输入用户名和密码 如果可以在数据库中查找到,打印登录成功, 查找不到打印登录失败.
解题:
实现java代码如下
@Test
public void test(){
//控制台输入用户名密码:
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username=sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
//注册JDBC驱动
Class.forName(