📜  使用 JDBC 连接检索表内容的Java程序

📅  最后修改于: 2022-05-13 01:54:29.576000             🧑  作者: Mango

使用 JDBC 连接检索表内容的Java程序

它可以有两种类型,即结构化和非结构化数据库。结构数据库是一种可以按行和列存储的数据库。非结构化数据库不能以引入新概念的行和列的形式存储,这里不讨论。大多数现实世界的数据都是非结构性的,如照片、视频、社交媒体。由于它们没有预定义的数据类型,因此它们不存在于数据库中。因此,结构化数据库存储在数据仓库中,非结构化地存储在数据湖中。 Java Database Connectivity 基本上是Java编程语言与 Oracle、SQL、PostgreSQL、MongoDB 等各种数据库之间的标准 API(应用程序接口)。它连接前端(用于与用户交互)和后端用于存储数据

JDBC 由 7 个称为连接步骤的元素组成。它们列在下面:

JDBC connection steps  Sep/Connection Number
1Import the package 
2Load and Register the drivers 
3Establish the connection 
4Create the statement 
5Execute the statement 
6Process Result
7Close/terminate

导入包处理JDBC操作的语法:

import java.sql.* ;

加载驱动类后注册驱动的语法:

forName(com.mysql.jdbc.xyz) ;

步骤:下面列出了涵盖所有 7 个组件并应用相同的 3 个步骤:

  1. 将创建第一个数据库,应该从中获取数据。如果数据是结构化的,则可以使用 SQL 来获取数据。如果数据是非结构化的 MongoDB 从大湖中获取数据。这里创建了 SQL 数据库,所有进一步的执行也是如此。
  2. 这一步是可选的,因为这里需要太旧并注册驱动程序。在某些 IDE 驱动程序中是内置的,例如 NetBeans,但它们在 eclipse 中缺失。这里需要安装驱动程序。需要下载 Jar 文件,几乎不占用内存空间。
  3. 使用 JDBC 连接检索表的内容

第 1 步:使用 SQLyog 创建数据库:用户可以使用“ SQLyog”创建数据库并在其中创建一些表并在其中填充数据。
考虑酒店数据库管理系统的随机示例。现在对其应用 SQL 命令,将该数据库命名为“hotelman”。现在假设用户开始在其中插入名为“ cuslogin ”和“ adminlogin ”的表。

第 2 步:创建连接:将IDE 视为 Netbeans 以便清楚理解,因为如果使用任何其他 IDE,请先安装驱动程序,否则现在可以在此包中工作。一旦清除

  1. 创建一个新包
  2. 打开一个新的Java文件
  3. 为JDBC编写以下代码
  4. 使用连接保存文件名。Java。

为了清楚起见,这里将 IDE 视为 Netbeans。下面是相同的插图:

Java
// Java Program  to Retrieve Contents of a Table Using JDBC
// connection
 
// Showing linking of created database
 
// Importing SQL libraries to create database
import java.sql.*;
 
public class connection {
 
    Connection con = null;
 
    public static Connection connectDB()
 
    {
 
        try {
            // Importing and registering drivers
            Class.forName("com.mysql.jdbc.Driver");
 
            Connection con = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/hotelman",
                "root", "1234");
            // here,root is the username and 1234 is the
            // password,you can set your own username and
            // password.
            return con;
        }
        catch (SQLException e) {
 
            System.out.println(e);
        }
    }
}


Java
// Java Program retrieving contents of
// Table Using JDBC connection
 
// Java code producing output which is based
// on values stored inside the "cuslogin" table in DB
 
// Importing SQL libraries to create database
import java.sql.*;
 
public class GFG {
 
    // Step1: Main driver method
    public static void main(String[] args)
    {
        // Step 2: Making connection using
        // Connection type and inbulit function on
        Connection con = null;
        PreparedStatement p = null;
        ResultSet rs = null;
 
        con = connection.connectDB();
 
        // Try block to catch exception/s
        try {
 
            // SQL command data stored in String datatype
            String sql = "select * from cuslogin";
            p = con.prepareStatement(sql);
            rs = p.executeQuery();
 
            // Printing ID, name, email of customers
            // of the SQL command above
            System.out.println("id\t\tname\t\temail");
 
            // Condiion check
            while (rs.next()) {
 
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String email = rs.getString("email");
                System.out.println(id + "\t\t" + name
                                   + "\t\t" + email);
            }
        }
 
        // Catch block to handle exception
        catch (SQLException e) {
 
            // Print exception pop-up on scrreen
            System.out.println(e);
        }
    }
}


第三步:使用JDBC连接检索表的内容:假设“cuslogin”表有“id”、“name”、“email”等列,用户想查看“cuslogin”表的内容。它涉及下面给出的一系列步骤,以及用于解释的声明和语法

3.1:我用SQL查询初始化一个字符串如下

String sql="select * from cuslogin";

3.2:初始化Connection类、 PreparedStatement类、ResultSet类(JDBC需要)的以下对象并连接数据库如下:

Connection con=null;
PreparedStatement p=null;
ResultSet rs=null;
con=connection.connectDB();

3.3:现在,在prepareStatement里面添加3.1的SQL查询,执行如下

p =con.prepareStatement(sql);
rs =p.executeQuery();

3.4运行一个循环直到 rs.next() 不等于 NULL ,根据数据类型从表中获取值,例如我们使用getInt()获取整数数据类型值和 getString() 获取字符串数据类型值。

3.5在同一个包中打开一个新的Java文件(这里是它的结果Java)并输入完整代码(如下所示)以检索表“cuslogin”的内容。

3.6两个文件即结果。 Java'和 '连接。 Java'应该在同一个包中,否则程序不会给出所需的输出!

实现:下面是说明相同的Java示例:

Java

// Java Program retrieving contents of
// Table Using JDBC connection
 
// Java code producing output which is based
// on values stored inside the "cuslogin" table in DB
 
// Importing SQL libraries to create database
import java.sql.*;
 
public class GFG {
 
    // Step1: Main driver method
    public static void main(String[] args)
    {
        // Step 2: Making connection using
        // Connection type and inbulit function on
        Connection con = null;
        PreparedStatement p = null;
        ResultSet rs = null;
 
        con = connection.connectDB();
 
        // Try block to catch exception/s
        try {
 
            // SQL command data stored in String datatype
            String sql = "select * from cuslogin";
            p = con.prepareStatement(sql);
            rs = p.executeQuery();
 
            // Printing ID, name, email of customers
            // of the SQL command above
            System.out.println("id\t\tname\t\temail");
 
            // Condiion check
            while (rs.next()) {
 
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String email = rs.getString("email");
                System.out.println(id + "\t\t" + name
                                   + "\t\t" + email);
            }
        }
 
        // Catch block to handle exception
        catch (SQLException e) {
 
            // Print exception pop-up on scrreen
            System.out.println(e);
        }
    }
}

输出:上面的输出完全基于存储在“cuslogin”表中的值,如上面的代码所示