JDBC||什么是JDBC,如何使用JDBC连接MySQL数据库,基本对象和类

JDBC(Java Data Base Connectivity)是Java API,用于执行SQL语句并简化数据库操作。本文详细介绍了如何使用JDBC连接MySQL数据库,包括导入和装载数据库驱动包、建立连接、执行SQL语句以及操作Connection、Statement和ResultSet对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是JDBC

JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API,可以说是接口

  • 市面上有非常多的数据库,本来我们是需要根据不同的数据库学习不同的API,sun公司为了简化这个操作,定义了JDBC API【接口】

  • sun公司只是提供了实现JDBC的API接口,数据库则由厂商负责实现。

  • 对于我们来说,操作数据库都是在JDBC API【接口】上,使用不同的数据库,只要用数据库厂商提供的数据库驱动程序即可。

如何使用JDBC连接数据库

步骤:

  1. 导入MySQL或者Oracle数据库驱动包

  2. 装载数据库驱动程序

  3. 获取到与数据库连接

  4. 获取可以执行SQL语句的对象

  5. 执行SQL语句

  6. 关闭连接

导入和装载数据库驱动包

在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此

方法如下:

点击右上角的project structure

选择modules

选择上传jar架包

选择保存好的jar驱动包,上传

最后勾选激活即可

驱动包加载完后,接下来就是对数据库进行连接,连接的同时记得打开虚拟机,否则运行会报错

数据的操作

package edu.xalead;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest {

    public static void main(String[] args) {
        //mysql驱动类
        String driverClass = "com.mysql.jdbc.Driver";//数据库驱动

        String url = "jdbc:mysql://192.168.93.88:3306/mydb";//数据库地址

        String username = "root";//用户名

        String password = "";//密码

        //数据库连接接口
        Connection conn = null;
        //执行sql语句的接口
        Statement st = null;
        try {
            //加载驱动类到虚拟机
            Class.forName(driverClass);

            //连接数据库
            conn = DriverManager.getConnection(url,username,password);

            //创建语句对象
            st = conn.createStatement();
            String sql = "begin;";
            st.execute(sql);
            sql = "update Account set account=account - 1000 where id=10010; ";
            //语句对象的executeUpdate(sql)方法会返回执行成功的记录数
            //注意:这个方法执行添删改等会改变数据的sql语句
            int count = st.executeUpdate(sql);//添删改都用executeUpdate(sql)
            sql = "update Account set account=account + 1000 where id=10086;";
            st.executeUpdate(sql);
            sql = "commit;";
            st.execute(sql);


        } catch (Exception e) {
            String sql = "rollback;";
            try{
                st.execute (sql);
            }catch (SQLException e1){
                e1.printStackTrace ();
            }
            e.printStackTrace();
        }
        finally {
            try{
                if (st != null)
                    st.close ();
                if (conn !=null)
                    conn.close ();
            }catch (SQLException e2){
                e2.printStackTrace ();
            }
        }
    }
}

设置好上面的属性后,在运行时系统就会自动与数据库进行连接,连接步骤完成。

执行SQL语句的对象为:

//加载驱动类到虚拟机
            Class.forName(driverClass);

            //连接数据库
            conn = DriverManager.getConnection(url,username,password);

            //创建语句对象
            st = conn.createStatement();
            String sql = "begin;";
            st.execute(sql);
            sql = "update Account set account=account - 1000 where id=10010; ";
            //语句对象的executeUpdate(sql)方法会返回执行成功的记录数
            //注意:这个方法执行添删改等会改变数据的sql语句
            int count = st.executeUpdate(sql);//添删改都用executeUpdate(sql)
            sql = "update Account set account=account + 1000 where id=10086;";
            st.executeUpdate(sql);
            sql = "commit;";
            st.execute(sql);

上面我们已经简单使用JDBC去访问数据库的数据了,现在我们运行一下

现在数据库里建表

运行代码

查看数据库

完成执行数据库程序!

简单的工具类

Connection对象

客户端与数据库所有的交互都是通过Connection来完成的。

常用的方法:

//创建向数据库发送sql的statement对象。

createcreateStatement()

//创建向数据库发送预编译sql的PrepareSatement对象。

prepareStatement(sql) 

//创建执行存储过程的callableStatement对象

prepareCall(sql)

//设置事务自动提交

setAutoCommit(boolean autoCommit)

//提交事务

commit()

//回滚事务

rollback()

Statement对象

Statement对象用于向数据库发送Sql语句,对数据库的增删改查都可以通过此对象发送sql语句完成。

Statement对象的常用方法:

//查询

executeQuery(String sql)

//增删改

executeUpdate(String sql)

//任意sql语句都可以,但是目标不明确,很少用

execute(String sql)

//把多条的sql语句放进同一个批处理中

addBatch(String sql)

//向数据库发送一批sql语句执行

executeBatch()

ResultSet对象

ResultSet对象代表Sql语句的执行结果,当Statement对象执行executeQuery()时,会返回一个ResultSet对象

ResultSet对象维护了一个数据行的游标【简单理解成指针】,调用ResultSet.next()方法,可以让游标指向具体的数据行,进行获取该行的数据

常用方法:

//获取任意类型的数据

getObject(String columnName)

//获取指定类型的数据【各种类型,查看API】

getString(String columnName)

//对结果集进行滚动查看的方法

next()

Previous()

absolute(int row)

beforeFirst()

afterLast()

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值