JDBC -Java连接数据库详解

1.什么是JDBC?

JDBC(Java Database Connectivity)是Java语言用于与数据库进行交互的API(应用程序接口)。它允许Java应用程序通过标准化的方式连接到各种数据库,并执行各种数据库操作,如查询、更新和删除数据等。通过JDBC,Java应用程序可以使用SQL语句与数据库进行通信,而不必关心底层数据库的具体实现。JDBC提供了一种灵活、可移植的方式,使开发人员能够轻松地编写与数据库交互的Java应用程序。

2.流程

  1. DriverManager类DriverManager 是 JDBC 中的一个类,负责管理 JDBC 驱动程序。它的主要作用是加载并注册数据库的驱动程序。通过调用 getConnection() 方法,DriverManager 可以获取与数据库的连接。

  2. Connection接口Connection 是 JDBC 中的一个接口,表示与数据库的连接。它定义了用于与数据库进行通信的方法,比如创建 Statement 对象、管理事务、关闭连接等。

  3. 具体的Connection实现类Connection 接口的具体实现类由数据库供应商提供的 JDBC 驱动程序实现。当我们通过 DriverManager.getConnection() 方法获取连接时,实际上获得的是数据库驱动程序提供的具体的 Connection 实现类的一个实例。这个实现类负责实现 Connection 接口定义的方法,并管理与数据库的底层通信。

  4. Statement接口及其实现类Statement 接口用于执行静态 SQL 语句,并返回执行结果。它有两个主要的实现类:StatementPreparedStatementStatement 对象用于执行不带参数的 SQL 语句,而 PreparedStatement 对象用于执行预编译的 SQL 语句,可以带有参数,提高了执行效率和安全性。

  5. ResultSet接口ResultSet 接口用于表示 SQL 查询的结果集。当执行查询语句时,StatementPreparedStatement 对象会返回一个 ResultSet 对象,其中包含了查询结果的数据。通过 ResultSet 对象,我们可以遍历结果集,获取查询结果的各个行和列的数据。

3.项目搭建

准备数据库。

创建学生表

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    class VARCHAR(50) NOT NULL,
    age INT NOT NULL,
    score FLOAT
);
INSERT INTO students (name, class, age, score) VALUES ('Alice', 'Class A', 20, 85.5);
INSERT INTO students (name, class, age, score) VALUES ('Bob', 'Class B', 21, 78.2);
INSERT INTO students (name, class, age, score) VALUES ('Charlie', 'Class A', 19, 92.0);
INSERT INTO students (name, class, age, score) VALUES ('David', 'Class C', 22, 79.8);
INSERT INTO students (name, class, age, score) VALUES ('Eva', 'Class B', 20, 88.9);

 4.下载驱动包注意你的Mysql版本。我使用8.0以上的。

 5.创建java项目。

一个空项目,创建一个lib文件夹,把上面的jar包放进去。

讲lib目录设置为仓库 

 

package com.xugong;

import com.mysql.jdbc.Driver;

import javax.naming.spi.DirStateFactory;
import java.sql.*;

public class Test_JDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2.获取连接对象
        //DriverManager.getConnection();
        String url = "jdbc:mysql://localhost:3306/test_jdbc";
        String username = "root";
        String password = "123456";
        Connection connection = DriverManager.getConnection(url, username, password);
        //3.获取执行sql语句的对象
        Statement statement = connection.createStatement();
        //4.编写sql语句,执行语句,接收结果
        String sql = "select name,class,age,score from students";
        ResultSet resultSet = statement.executeQuery(sql);
        //5.处理结果:遍历result结果集
        while(resultSet.next()){
            String name = resultSet.getString("name");
            String aClass = resultSet.getString("class");
            int age = resultSet.getInt("age");
            float score = resultSet.getFloat("score");
            System.out.println(name+"\t"+aClass+"\t"+age+"\t"+score);

        }
        //6.释放资源
        resultSet.close();
        statement.close();
        connection.close();


    }
}

 结果展示:

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过gRPC Java连接数据库,您可以按照以下步骤进行操作: 1. 首先,请确保您已经安装了gRPC Java库。您可以从官方网站或GitHub上获取最新版本。可以使用以下命令克隆gRPC Java库: `$ git clone -b v1.34.0 https://github.com/grpc/grpc-java.git` 2. 然后,根据您选择的数据库,选择适当的Java数据库连接器。常见的选择包括JDBCJava Database Connectivity)驱动程序,例如MySQL Connector/J、PostgreSQL JDBC驱动程序等。确保您已经将它们添加到您的Java项目的依赖项中。 3. 在您的Java代码中,根据gRPC的规范和您选择的数据库的规范,创建相应的gRPC服务和方法。这将包括定义请求和响应消息以及具体的业务逻辑。 4. 在服务器端,您可以使用适当的数据库连接器来实现您的gRPC服务方法。根据您使用的数据库和连接器,您可以执行查询、插入、更新等操作,并将结果返回给客户端。 5. 在客户端,您可以使用gRPC的stub调用服务器端的方法。根据您的需求,您可以将请求的数据传递给服务器,并处理返回的结果。 需要注意的是,gRPC是一个通用的远程过程调用(RPC)框架,它可以与各种不同的后端服务进行通信,包括数据库。因此,具体的数据库连接和操作细节将由您选择的数据库Java数据库连接器决定。 引用中提到的`option java_package = "io.grpc.examples.routeguide"`是一个gRPC的选项,用于指定生成的Java代码的包名。 引用中提到的基于OkHttp的传输是一个轻量级的传输,主要用于Android客户端。这意味着您可以选择使用OkHttp来作为gRPC的传输层,以便在Android平台上与数据库进行通信。 请根据您的实际情况和需求,选择适当的数据库连接器和gRPC传输方式,并根据它们进行相应的配置和编码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [grpc详解 java版](https://blog.csdn.net/weixin_42364391/article/details/114158369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值