什么是JDBC:
JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 JavaAPI,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。
JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC原理:
JDBC 是以前 SUN 公司定义的一套访问数据库的接口,(没有具体实现),一套标准,具体的实现是由各大数据库厂家去实现,每个数据库厂家都有自己的 JDBC 实现,也就是 JDBC 驱动实现类,Java 应用程序连接指定数据库,需要使用厂家提供的 JDBC 驱动才能连接。(这里其实就是 java 多态的一种体现,一个接口可以有很多具体的实现)。
JDBC连接数据库
JDBC 连接数据库步骤概述:
第一步:加载驱动;
第二步:连接数据库;
第三步:使用语句操作数据库
第四步:关闭数据库连接,释放资源;
(1)在项目里配置数据库驱动:
1.需要先下载数据库驱动:
链接:https://pan.baidu.com/s/1LQ7kEkrhCxHhoIrevPzYAA (永久有效)
提取码:bfsp
2.下载好后解压。在eclipse的左边目录中执行下面的操作:
右击项目 -> Build Path(构建路径) -> Configure Build Path(配置构建路径)
会弹出窗口,选第三个选项库(L),如图。点击右边 Add Exteranl JARs(添加外部jar) <红色框标出>
3.选择之前下载好的数据库驱动路径,点打开->应用并关闭,这样数据库驱动就添加完成了。可以在左边项目列表看到引用的库(如下图)。
(2)加载数据驱动
Mysql 的驱动名称:com.mysql.jdbc.Driver
加载方式(方法): Class.forName(驱动名);
下面是一个关于加载驱动的实例:
package com.myjava.jdbc.demo1; //新建一个项目后,这是在src包中创建的一个包
public class Demo1
{
public static String jdbcName = "com.mysql.jdbc.Driver"; //方便后面,将 Mysql的驱动名 用变量表示。
public static void main(String[] args)
{
try
{
Class.forName(jdbcName); //加载驱动
System.out.print("加载驱动成功!"); //测试,如果加载成功,显示加载成功
} catch (ClassNotFoundException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
System.out.print("加载驱动失败!");//如果加载失败,显示加载失败
}
//如果直接写 Class.forName(jdbcName) 语句会报错,会提示要增加
//抛出或try-catch语句,这里增加try-catch语句。
}
}
运行结果:如果加载成功,会显示:“加载驱动成功”。
(3)连接及关闭数据库
1,用到的类:
DriverManager类 ,驱动管理类,主要负责获取一个数据库的连接。
2.常用方法:
方法 | 说明 |
---|---|
static Connection getConnection(String url, String user, String password) | 试图建立到给定数据库 UR接。 |
关于getConnection方法参数的说明:
参数 | 说明 |
---|---|
url | 数据库的地址 |
user | 数据库用户名,连接是为该用于建立的 |
password | 用户的密码 |
关于 url 参数 的说明:
也就是MySQL 数据库的连接地址,它的格式格式是:
jdbc : mysql : // IP地址 : 端口号 / 数据库名称 |
---|
一些解释:
jdbc:表示jdbc协议,JDBC URL 中的协议总是 jdbc ;
mysql : 不同软件商数据库表示的不一样,mysql数据库是mysql。
另外:
子协议:它是驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。
//IP地址 : 端口号 / 数据库名称,表示的是子名称,它一种标识数据库的方法。必须遵循“//主机名:端口/自己创建的数据库名称”的标准 URL 命名。如://localhost:3306/db_book 。db_book是自己创建的数据库名称。
3,会涉及到Connection 接口,它用于接收与特定数据库的连接(会话)。即接收 getConnection方法的返回值。
4.关闭数据库方法:void close()
立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。
下面是一个关于连接数据库和关闭数据库的实例:
public class Demo1
{
//数据库地址
public static String url = "jdbc:mysql://localhost:3306/db_book";
//用户名,没更改的话默认是root
public static String user = "root";
//用户密码
public static String password = "admin";
//驱动名称,加载的时候用到
public static String jdbcName = "com.mysql.jdbc.Driver";
public static void main(String[] args)
{
//加载驱动
try
{
Class.forName(jdbcName);
System.out.print("加载驱动成功!");
} catch (ClassNotFoundException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
System.out.print("加载驱动失败!");
}
Connection con = null; //Connection引入的是接口
try
{
//下面这个很重要,获取数据库连接,
con = DriverManager.getConnection(url, user, password);
System.out.print("\n连接成功!\n"); //测试,连接成功消息
} catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
System.out.print("连接失败!");//测试,连接失败消息
}
finally
{
try
{
con.close(); //关闭数据库,这里也需要try-catch语句
System.out.print("\n关闭成功!"); //测试,关闭成功消息
} catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
System.out.print("\n关闭失败!\n"); //测试,关闭失败消息
}
}
}
}
成功连接,最后关闭会显示:
加载驱动成功!
连接成功!
关闭成功!
19.07.05
使用Statement实现对数据增删改操作
使用 Statement 接口实现添加数据操作
使用 Statement 接口实现更新数据操作
使用 Statement 接口实现删除数据操作
更新中…