概述
- JDBC概念
JDBC (Java DataBase Connectivity) 就是使用Java语言操作关系型数据库的一套API目标
:同一套Java代码操作不同的关系型数据库,而此时sun公司就指定了一套标准接口
(JDBC),JDBC中定义了所有操作关系型数据库的规则。接口是无法直接使用的,我们需要使用接口的实现类,而这套实现类
(称之为:驱动)就由各自的数据库厂商
给出。
- JDBC本质
1.官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
2.各个数据库厂商去实现这套接口,提供数据库驱动jar包
3.我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
- JDBC优势
1.各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发
2.可随时替换底层数据库,访问数据库的Java代码基本不变
流程
- 编写Java代码
- Java代码将SQL发送到MySQL服务端
- MySQL服务端接收到SQL语句并执行该SQL语句
- 将SQL语句执行的结果返回给Java代码
详细操作
- 创建新的空的项目
然后自定义项目 name 和 location
- 对项目进行设置,JDK版本、编译版本
当然,如果创建的不是空项目,也就没有这一步。
- 创建模块
和创建 project 基本一致,同样指定模块的名称及位置即可。
- 导入驱动包
将mysql的驱动包放在模块下的lib目录(需手动创建,命名随意)下,并将该jar包添加为库文件
(下一步)。驱动包资源在文章末尾。
- 右击驱动包,在
Add as Library
(添加为库文件)的地方,有如下三个选项
Global Library
: 全局有效Project Library
: 项目有效Module Library
: 模块有效
在本例中,我们只需在该模块下有效即可,选择:Module Library
- 在src下创建类,进行编码(详见代码注释)
package cn.codetruth;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
* JDBC
*/
public class JDBCDemo {
public static void main(String[] args) throws Exception {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
String url = "jdbc:mysql://127.0.0.1:3306/mydatabase";
String username = "root";
String password = "****";
Connection con = DriverManager.getConnection(url,username,password);
// 定义sql
String sql = "UPDATE tb_user set password = '456' where id = 2";
// 获取指向sql的对象statement
Statement sta = con.createStatement();
// 执行sql
int count = sta.executeUpdate(sql); // 受影响的行数
System.out.println(count);
// 释放资源
sta.close(); // 先释放指向SQL的对象
con.close(); // 再释放SQL连接
}
}
- 运行结果
可以看到,与UPDATE tb_user set password = '456' where id = 2
效果一致。表 tb_user 中 id 为 2 的 password 已经更改为456
。
资源
:mysql-connector-java-5.1.48.jar
代码中出现的API详解
参照: