JDBC其实就是利用Java语言来操作数据库的
JDBC就是使用Java语言操作关系型数据库的一套API
全称(Java DataBase Connectivity)Java数据库连接
目录
为了同一套Java代码,操作不同的关系型数据库,有以下关系
JDBC简介
JDBC的本质:
- 官方(SUN公司)定义的一套操作所有关系型数据库的规则,即接口
- 各个数据库厂商去实现这套接口,提供数据库驱动jar包
- 我们可以使用这套接口(JDBC)编程,真正执行的代码时驱动jar包中的实现类
JDBC好处:
- 各个数据厂商使用相同的接口,Java代码不需要针对不同的数据库分别开发
- 可随时替换底层数据库,访问数据库的Java代码基本不变
JDBC快速入门
步骤
0、创建工程,导入驱动jar包
1、注册驱动(以下步骤在src文件夹中,创建类进行编写即可)
Class.forName("com.mysql.jdbc.Driver");
2、获取连接
Connection conn = DriverManager.getConnection(url,username,password);
3、定义SQL语句
String sql = "update...";
4、获取执行SQL对象
Statement stmt = conn.createStatement();
5、执行SQL
stmt.executeUpdate(sql);
6、处理返回结果
7、释放资源
package com.itheima.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
* JDBC快速入门
*/
public class JDBCDemo {
public static void main(String[] args) throws Exception {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver"); //在5之后的版本 此句可以省略
//里面的类名是固定的,对于forName的异常 利用关键字throws抛出Exception即可
//2.获取连接,利用DriverManager这个类的静态方法,获取返回值 Connection 对象
String url = "jdbc:mysql://127.0.0.1:3306/db1";
String username = "root";
String password = "1234";
Connection conn = DriverManager.getConnection(url, username, password);
//3。定义sql语句
String sql = "update account set money = 2000 where id = 1";
//4.获取执行sql的对象 Statement 利用createStatement方法获取这个对象
Statement stmt = conn.createStatement();
//5.执行sql
int count = stmt.executeUpdate(sql); //返回值,是受影响的行数
//6.处理的结果 这里简单打印
System.out.println(count);
//7.释放资源 这里有两个 : 因为先开放的是Connection,后开放的是Statement;所以先释放Statement,后释放Connection
stmt.close();
conn.close();
}
}
出现以下警告
对于第一行的警告,这里可以在url中修改ssl=true或者false即可。因为MySQL在高版本需要指明是否进行SSL连接
String url = "jdbc:mysql://127.0.0.1:3306/db1/framework?characterEncoding=utf8&useSSL=false";
对于第二行的异常,
重新配置端口号
修改mysql1045错误
连接数据库时出现1251错误怎么办
没有解决
重新配置了jar包(对应自己的版本) 又更改了几个异常 并把注册驱动注释掉了 最后成功
String url = "jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true";
结果:
数据库数据更改成功