JDBC快速入门(二) JDBC各个类详解以及代码规范

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: JDBC快速入门(二) JDBC各个类详解以及代码规范

JDBC常用的类有

1.DriverManager

2.Connection

3.Statement

4.ResultSet

5.PreparedStatement

1.DriverManager

DriverManager类的主要作用就是连接数据库,该类中有一个方法就是

static Connection getConnection(String url,String username,String password)

该方法为静态方法,可以直接通过类名调用也就是DriverManager.getConnection()

三个参数是

url:指定数据库链接的路径(“jdbc:mysql://localhost:3306/test”)

格式为:“jdbc:mysql:// ip(或者域名) : 端口号 / 数据库名称”

username:名称(“root”)

password:密码(“123456”)

小细节 :如果你连接的是本机的MySQL并且端口默认为3306,那么数据库连接路径可以简写为jdbc:mysql:///数据库名称


2.Connection

功能:

1.获取执行sql的对象

在Connection类中有两个方法,分别是

Statement createStatement();
PreparedStatement prepareStatement(String sql);

2.管理事务

Connection也封装了三个方法分别是

开启事务

setAutoCommit(boolean autoCommit)
//设置为false就是开启事务

提交事务

Commit();

回滚事务

rollback();

3.Statement

用于执行静态sql语句并返回其生成的结果的对象

1.执行sql

boolean execute(String sql);
//该语句可以执行任意sql语句,了解即可,用的不多

如果返回的是true,那么返回的就是ResultSet结果集,如果返回的是false,那么就是更新计数或者没有结果

int executeUpdate(String sql);

执行的是DML语句或者DDL语句,也就是增删改语句或者(create,alter ,drop)等语句

返回值是影响的行数,可以通过这个返回值来判断DML语句是否执行成功,若返回值>0就是执行成功,反之就是失败

Resultset executeQuery(String sql);

执行DQL语句比如select语句,下面我们用案例来演示区别

练习

student 添加一条记录

student 修改记录

student 删除一条记录


附上代码

package com.byzhang.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
//这次的代码我们不用抛出异常的形式,而是采用try catch的方式来捕捉异常,会更规范
public class JdbcDemo2 {
    public static void main(String[] args) throws SQLException {
        Statement stmt = null;
        Connection conn = null;
        try{
            //1.注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.定义sql
            String sql = "insert into student values(4,99)";
            //3.获取Connection对象
            conn = DriverManager.getConnection("jdbc:mysql:///test?useSSL=false","root","123456");
            //4.获取执行sql的Statement对象
            stmt = conn.createStatement();
            //5.执行sql
            int cnt = stmt.executeUpdate(sql);
            //6.处理结果
            if(cnt > 0){
                System.out.println("添加成功!!");
            }else{
                System.out.println("添加失败!!");
            }
        }catch (ClassNotFoundException | SQLException e){
            e.printStackTrace();
        }finally {
            //这里因为stmt是由conn产生的,所以先关闭stmt 再关闭conn
            //避免空指针异常,先判断他是不是null
            if(stmt != null){
                try{
                    stmt.close();
                }catch (SQLException e){
                    e.printStackTrace();
                }
            }
            if(conn != null){
                try{
                    conn.close();
                }catch (SQLException e){
                    e.printStackTrace();
                }
            }
        }
    }
}

update和delete的实现过程是一样的

不过在执行DDL语句的时候不管成功与否都是返回0

4.ResultSet

结果集对象,封装查询结果

next();
//游标向下移动一行
getXxx(参数);
//获取数据,其中Xxx代表数据类型
getInt(1);//表示得到第一列的值,也就是id
getInt("id");//这样表示得到id的值,返回值是int
getString(2);
getString("name");
getDouble(3);
getDouble("score");
//等等很多这样的写法

这是ResultSet以及executeQuery的操作,不同的地方用红框框了起来

5.PreparedStatement

用于执行预编译的sql语句,我们将在后续介绍其用法

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Java 关系型数据库 MySQL
JDBC连接数据库工具类
JDBC连接数据库工具类
|
SQL Java 数据库连接
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
159 0
|
3月前
|
SQL Java 关系型数据库
【前端学java】JDBC快速入门
【8月更文挑战第12天】JDBC快速入门
31 2
【前端学java】JDBC快速入门
|
5月前
|
Java 数据库连接 API
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
63 3
|
5月前
|
Java 关系型数据库 MySQL
JDBC简介以及快速入门
JDBC简介以及快速入门
33 0
|
6月前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
51 0
|
Java 数据库连接 数据库
JDBC快速入门(四)
JDBC快速入门(四)
|
6月前
|
SQL Java 关系型数据库
JDBC快速入门
JDBC快速入门
67 0
|
6月前
|
SQL Java 关系型数据库
jdbc(insert,update,,create,以及各个类详解)
jdbc(insert,update,,create,以及各个类详解)
|
SQL Java 关系型数据库
JDBC知识【JDBC快速入门】第二章
JDBC知识【JDBC快速入门】第二章