JDBC基础内容

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: JDBC基础内容

JDBC的概念:

JDBC就是使用java语言操作关系数据库的一套API,全称为(java DataBase Connectivity)-----java数据库连接.

JDBC的本质:

是由sun公司定义的一套操作所有关系型数据库的规则,即接口,各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

JDBC好处:

各数据库厂商使用相同的接口,java代码不需要针对不同数据库分别开发

可随时替换底层数据库,访问数据库的java代码基本不变

同一套java代码,操作不同的关系型数据库:

使用JDBC的步骤:

a:创建工程,导入驱动jar包

创建新工程,对工程进行配置:

创建新模块:

用于存放jar包:


将下载好的jar包直接复制到lib下:

注意,jar一定要放在src下面,别放错啦

编写代码:

package MyJDBC;
import java.sql.*;
public class myjdbc {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取连接
        String url="jdbc:mysql://localhost:3306/已创建好的数据库名";
        String username="root";
        String password="你的数据库密码";
        Connection connection= DriverManager.getConnection(url,username,password);
        //定义SQL
        String sql="update person set age=19 where id=2";
        //获取执行SQL的对象Statement
        Statement statement=connection.createStatement();
        //执行sql
        int count_row=statement.executeUpdate(sql);
        //释放资源
        statement.close();
        connection.close();
    }
}

执行完代码之后,在mysql中查询数据的变化情况:

注意:数据库以及表的创建等工作,一定要提前在mysql中完成

注意:

注册驱动 Class.forName("com.mysql.cj.jdbc.Driver");//mysql5以上的版本,该行代码可以不写,也

原因是下述文件已经为我们写了该驱动,因此可以自动加载驱动类:

JDBC API:

DriverManager:

注册驱动 Class.forName("com.mysql.cj.jdbc.Driver");

查看Driver源码:

获取连接:

//url:连接路径,user:用户名,password:密码
static Connection    getConnection(String url,String user,String password);

url:

语法:

jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...

举例:

//localhost:表示本机  3306:是mysql服务器默认的端口号  person:数据库名称
jdbc:mysql://localhost:3306/person

注意:

如果连接的是本机mysql服务器,并且mysql服务器默认端口为3306,则URL可以简写为:jdbc:mysql:///数据库名称?参数键值对

配置useSSL=false参数,表示禁用安全连接方式,解决警告提示

Connection:

获取执行SQL的对象:

普通执行SQL对象:

Statement createStatement();

预编译SQL的执行SQL对象:防止SQL注入

PreparedStatement prepareStatement(sql)

执行存储过程的对象:

CallableStatement prepareCall(sql)
事务管理:

MySQL事务管理:

开启事务:begin;/start transaction;
提交事务:commit;
回滚事务:rollback;

mysql默认自动提交事务

JDBC事务管理:Connection接口中定义了三个对应的方法

开启事务:setAutoCommit(boolean autoCommit):true为自动提交事务;false为手动提交事务,即为开启事务
提交事务:commit()
回滚事务:roolback();
package MyJDBC;
import java.sql.*;
public class myjdbc {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //获取连接
        String url="jdbc:mysql://localhost:3306/MyJDBC";
        String username="root";
        String password="xxx";
        Connection connection= DriverManager.getConnection(url,username,password);
        //定义SQL
        String sql1="update person set age=24 where id=1";
        String sql2="update person set age=22 where id=2";
        //获取执行SQL的对象Statement
        Statement statement=connection.createStatement();
        //执行sql
        try {
            //开启事务
            connection.setAutoCommit(false);
            int count_row1=statement.executeUpdate(sql1);
      System.out.println(count_row1);
      int count_row2=statement.executeUpdate(sql2);
            System.out.println(count_row2);
            //提交事务
            connection.commit();//未出现异常则提交事务否则事务回滚
        } catch (Exception throwables ) {
            //回滚事务
            connection.rollback();
            throwables.printStackTrace();
        }
        //释放资源
        statement.close();
        connection.close();
    }
}

ide输出:

mysql数据库中:

数据发生更新!

当发生异常时:

idea输出:

mysql中的数据情况:

数据并没有更新!

Statement:

statement的作用:

执行SQL语句

int executeUpdate(sql):执行DML,DDL语句
//返回值:
(1)DML语句影响的行数
(2)DDL语句执行后,执行成功也可能返回0

注:

DML数据操纵语言:对数据库中的数据进行一些简单操作,如insert、delete、update、select等。DML操作是可以手动控制事务的开启、提交和回滚的


DDL数据定义语言:对数据库中的某些对象(例如database、table)进行管理,如create、alter和drop,DDL操作是隐性提交的,不能rollback



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 关系型数据库
JDBC基础内容2
JDBC基础内容2
|
Java 关系型数据库 MySQL
JDBC知识【JDBC概述】第一章
JDBC知识【JDBC概述】第一章
|
SQL Java 关系型数据库
JDBC知识【JDBC API详解】第三章下篇
JDBC知识【JDBC API详解】第三章下篇
|
6月前
|
SQL Java 关系型数据库
JDBC技术【JDBC概述、获取数据库连接、 下载数据库驱动】(一)-全面详解(学习总结---从入门到深化)
JDBC技术【JDBC概述、获取数据库连接、 下载数据库驱动】(一)-全面详解(学习总结---从入门到深化)
162 0
JDBC技术【JDBC概述、获取数据库连接、 下载数据库驱动】(一)-全面详解(学习总结---从入门到深化)
|
6月前
|
SQL Java 关系型数据库
JDBC技术【SQL注入、JDBC批量添加数据、JDBC事务处理、其他查询方式】(三)-全面详解(学习总结---从入门到深化)
JDBC技术【SQL注入、JDBC批量添加数据、JDBC事务处理、其他查询方式】(三)-全面详解(学习总结---从入门到深化)
73 0
|
存储 SQL Java
jdbc概述
jdbc概述
84 0
|
SQL Oracle 安全
如何使用JDBC操作数据库?一文带你吃透JDBC规范(一)
如何使用JDBC操作数据库?一文带你吃透JDBC规范(一)
411 1
|
存储 SQL Java
JDBC概述
JDBC概述
84 0
|
SQL druid Java
如何使用JDBC操作数据库?一文带你吃透JDBC规范(二)
如何使用JDBC操作数据库?一文带你吃透JDBC规范(二)
115 0
|
Java 数据库连接 数据库
原生JDBC连接数据库案例教学
前言: 我们在刚刚接触后端开发时,有没有思考过,怎么才能后java代码和数据库进行交互的呢?
120 2