方便食用,只为导包的同学可以直接看2.1节
一、JDBC介绍
1、什么是 JDBC
JDBC:Java推出操作数据库的技术(Java DataBase Connection)。可以通过JDBC技术操作各种数据库。
JDBC它是一套规范,其中定义若干的接口,只要按照这些接口中提供的方法,可以不用关心是哪个数据库,都可以正常的操作。
数据库厂商在生成数据库软件的时候,为了Java能够操作数据库,每个数据库都会基于JDBC封装一套适合自己数据库的相关驱动包(jar包),然后我们在编程时候需要将相关的jar导入到项目中。
二、JDBC基本使用
1、导入MySql数据库驱动
创建文件夹,将jar包复制到文件夹中。
将jar包添加classpath中。
2、编写JDBC入门程序
2.1、创建数据库和表
CREATE DATABASE day12;USE day12;CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(30) NOT NULL,age INT NOT NULL,sex CHAR(1),address VARCHAR(100));
2.2、编写JDBC代码
- 加载数据库驱动
- 获取数据库连接
- 获取执行器(对数据库进行CRUD操作)
- 处理执行结果集
- 释放资源
public class JDBCDemo {public static void main(String[] args) throws ClassNotFoundException, SQLException {// 1、加载数据库的驱动(加载使用的数据库驱动的核心类)Class.forName(\"com.mysql.jdbc.Driver\");// 2、获取数据库连接String url = \"jdbc:mysql://127.0.0.1:3306/day12\"; // day12为我当前使用的数据库名String user = \"root\";String password = \"abc\";Connection conn = DriverManager.getConnection(url, user, password);// 3、获取执行器Statement stmt = conn.createStatement();String sql = \"INSERT INTO users VALUE(NULL , \'小明\', 23 , \'男\' , \'南京\')\";// 执行sqlint x = stmt.executeUpdate(sql);System.out.println(x);// 4、释放资源stmt.close();conn.close();}}
3、详细介绍JDBC中的相关类
3.1、加载数据库驱动
项目中需要使用Java操作数据库,就必须先将指定的数据库驱动加载项目中,并且这个驱动应该只加载一次,后续所有操作数据库的代码共享这个驱动
Class.forName(\"com.mysql.jdbc.Driver\");
使用Class类中的forName方法,直接指定某个数据库自己实现的JDBC规范之后的Driver类。
从MySql5.0以上版本开始,可以省略驱动的加载。由DriverManager类在获取数据库连接的时候根据URL分析使用的是哪个数据库,然后自动加载驱动。
如果使用mysql8.0以上版本:
Class.forName(\"com.mysql.cj.jdbc.Driver\");
3.2、获取数据库链接
String url = \"jdbc:mysql://127.0.0.1:3306/day12\";String user = \"root\";String password = \"abc\";Connection conn = DriverManager.getConnection(url, user, password);
使用JDK中提供的DriverManager(驱动管理类)来获取数据库的连接。
连接数据库需要三个参数:
- url:表示连接哪个电脑上的数据库,以及数据库的端口号和连接的库名
-
user:连接数据库的账号
-
password:连接数据库的密码
3.3、Connection接口
Connection接口它是JDBC中提供的一个连接数据库的规范。由不同的数据库厂商负责具体的实现类。我们编写代码的时候,只需要按照java.sql包下的Connection接口去使用即可。
Connection是操作数据库的入口。
通过Connection接口中的方法,获取到用于执行sql语句的对象(执行器)
3.4、Statement接口
Statement:执行器,主要将SQL语句发送到数据库,完成对数据库、数据表、表中的数据操作(CRUD)。
-
executeQuery:执行的是select语句,执行之后,查询的结果再次封装到ResultSet对象中
-
executeUpdate:主要执行的update、delete、insert语句。返回对数据表影响的行数
eIo0-1596464791507)] -
executeQuery:执行的是select语句,执行之后,查询的结果再次封装到ResultSet对象中
-
executeUpdate:主要执行的update、delete、insert语句。返回对数据表影响的行数
-
execute(sql) :执行的结果为 ResultSet 对象,则返回 true;如果执行的CUD,则返回 false。(不常用)