前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL】JDBC编程

【MySQL】JDBC编程

作者头像
xxxflower
发布2023-04-16 17:50:22
1.2K0
发布2023-04-16 17:50:22
举报
文章被收录于专栏:《数据结构》《数据结构》

数据库编程的必备条件

  • 编程语言,如Java,C、C++、Python等
  • 数据库,如Oracle,MySQL,SQL Server等
  • 数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。

在实际开发中,SQL很少是手动输入的,绝大多数SQL都是通过代码,自动执行的。就需要让其他编程语言来操作数据库服务器。

MySQL中提供了很多API(Application Programming Interface)(提供的功能/服务)。

Java的标准库,就会给我们提供一些API。这个API中有一些随机数,scanner,集合类。数据库(MySQL)也会提供一组API,通过这组API就可以操作数据库,完成各种增删改查的操作。

Java的数据库编程:JDBC

JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

JDBC的使用步骤

1.?创建数据源DataSourece

第一步,创建DataSource对象,用来描述数据库位置。

代码语言:javascript
复制
 DataSource dataSource = new MysqlDataSource();

其中DataSource为标准库中java.sql里面的一个jdbc接口,MysqlDataSource是来源于我们所下载驱动包中的一个实现DataSource接口的类。

第二步设置数据库的位置“URL”,登录数据库的用户名和密码

代码语言:javascript
复制
//设置数据库所在地址
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/student?characterEncoding=utf8&useSSL=false");
//设置登录数据库的用户名
((MysqlDataSource)dataSource).setUser("root");
//设置登录数据库的密码
((MysqlDataSource)dataSource).setPassword("0828");
代码语言:javascript
复制
jdbc:mysql://127.0.0.1:3306/student?characterEncoding=utf8&useSSL=false 是一个URL,也叫唯一资源地址符

具体含义为:URL类型声明://数据库的地址/数据库名?字符集编码&是否加密

上面的向上/向下转型是jdbc中比较常用的写法, 让后续的代码继续使用DataSoure类型的实例, 避免MysqlDataSource扩散到代码中的各个地方, 以此方便未来更换数据库, 更换时只需要修改一处代码即可.

User是用户名, root为数据库的默认用户名.

Password是登录数据库的密码, 即安装数据时, 我们自己所设的密码.

此时我们数据源创建的操作, 只是去描述了下服务器在那里, 访问哪个数据库, 编码方式是什么, 登陆账号密码是什么等等, 但还没有真正进行连接访问, 下面进行的连接操作, 是真正开始通过网络进行通信.

2.连接数据库

第三步,与数据库服务器建立连接,创建好数据源DataSource对象后,调用该对象的getConnection()方法,获取java.sql.Connection对象,此时就可以与数据库建立连接了。

代码语言:javascript
复制
Connection connection = dataSource.getConnection();

?3.构造并执行sql语句

代码语言:javascript
复制
String sql = "select * from student2";
//将sql字符串包装成一个语句对象,表示待执行的sql的对象
PreparedStatement statement = connection.prepareStatement(sql);
//执行sql
int ret = statement.executeQuery();//返回值为受影响行数

要注意如果待执行的sql语句操作是insert, update, delete, 使用executeUpdate方法执行即可,返回值为影响数据的行数;

而如果待执行的sql语句操作是select, 则使用executeQuery方法执行,返回值是一个ResultSet结果表对象, 其中储存了查询到的的结果, 我们可以通过遍历该结果表来获取查询到的数据.

4.遍历结果集合

把resultSet想象成一个表格,同时表格这里有个光标。初始情况下光标指向表最上面。每次调用next,光标往下一行走,当光标指向某一行的时候,就可以通过getXXX来获取到当前这行里的数据。

代码语言:javascript
复制
while(resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id = "+ id +",name = "+ name);
        }

5.释放资源

第五步, 释放资源, 我们执行完毕sql语句后需要及时地将资源释放, 在JDBC编程中, 最常见需要释放的类或接口有三个, 分别是Connection, PreparedStatement, ResultSet, 要注意的是释放资源的顺序和开启资源的的顺序是相反的, 也就是先开启的要后释放。

代码语言:javascript
复制
//.释放资源
        resultSet.close();
        statement.close();
        connection.close();

下面是完整的jdbc查找代码:

代码语言:javascript
复制
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCInsertDemo {
    public static void main(String[] args) throws SQLException {
        //1.创建并初始化数据源
        DataSource dataSource = new MysqlDataSource();
        //设置数据库所在地址
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/student?characterEncoding=utf8&useSSL=false");
       //设置登录数据库的用户名
        ((MysqlDataSource)dataSource).setUser("root");
        //设置登录数据库的密码
        ((MysqlDataSource)dataSource).setPassword("0828");
        //2.建立连接
        Connection connection = dataSource.getConnection();
        //3.构造SQL
        String sql = "select * from student2";
        PreparedStatement statement = connection.prepareStatement(sql);
        //4.执行SQL
        ResultSet resultSet = statement.executeQuery();
        //5.遍历结果集合
        while(resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id = "+ id +",name = "+ name);
        }
        //6.释放资源
        resultSet.close();
        statement.close();
        connection.close();

    }
}
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库编程的必备条件
  • Java的数据库编程:JDBC
  • JDBC的使用步骤
    • 1.?创建数据源DataSourece
      • 2.连接数据库
        • ?3.构造并执行sql语句
          • 4.遍历结果集合
            • 5.释放资源
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com