📜  Spring JDBC 示例

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

Spring JDBC 示例

JDBC 或Java数据库连接是来自 Sun 微系统的规范,它为Java应用程序与各种数据库通信提供标准抽象(即 API 或协议)。它为该语言提供了Java数据库连接标准。它用于编写访问数据库所需的程序。 JDBC 与数据库驱动程序一起能够访问数据库和电子表格。可以借助 JDBC API 访问存储在关系数据库 (RDB) 中的企业数据。在本文中,我们将讨论如何使用 Spring Framework 编写 JDBC 程序。

分步实施

第 1 步:在您首选的 IDE(IntelliJ IDEA 或 Eclipse)中创建一个简单的Java项目。你可以参考这些文章:

  • 在 IntelliJ IDEA 中创建第一个Java应用程序
  • 如何为Java安装 Eclipse IDE?

第 2 步:在数据库中创建一些表。在本文中,我们使用了 MySQL 数据库。我们的 MySQL 数据库中已经存在以下数据。

MySQL 数据库中的数据

所以这里的“ studentdb”是我们的模式名,“hostelstudentinfo 是表名。同样,您可以创建自己的模式和表,并手动将一些数据放入该表中。你可以参考这些文章:

  • 如何在 Windows 上安装 MySQL?
  • 如何在 Windows 上为 MySQL 安装 SQL Workbench?

第 3 步:转到Java项目并创建一个名为StudentDAO的类,在该类中,我们将创建一个方法selectAllRows()来获取 MySQL 数据库中存在的所有数据。我们还将声明我们的四个最重要的属性,以将我们的Java程序与 MySQL 服务器连接起来。

  • 司机
  • 网址
  • 用户
  • 密码

例子

Java
// Java Program to fetch All Data Present Inside MySQL DB
  
// Importing required classes
import java.sql.*;
  
// Main class
public class StudentDAO {
  
    // Class data members
    private String driver;
    private String url;
    private String userName;
    private String password;
  
    // Setter methods for
    // Setter Injection
    public void setDriver(String driver)
    {
        this.driver = driver;
    }
  
    // Setter
    public void setUrl(String url) { this.url = url; }
  
    // Setter
    public void setUserName(String userName)
    {
        this.userName = userName;
    }
  
    // Setter
    public void setPassword(String password)
    {
        this.password = password;
    }
  
    // Setter
    public void selectAllRows()
        throws ClassNotFoundException, SQLException
    {
        System.out.println("Retrieving all student data..");
  
        // Load driver
        Class.forName(driver);
  
        // Getting a connection
        Connection con = DriverManager.getConnection(
            url, userName, password);
  
        // Execute query
        Statement stmt = con.createStatement();
  
        ResultSet rs = stmt.executeQuery(
            "SELECT * FROM studentdb.hostelstudentinfo");
  
        while (rs.next()) {
            int studentId = rs.getInt(1);
            String studentName = rs.getString(2);
            double hostelFees = rs.getDouble(3);
            String foodType = rs.getString(4);
  
            System.out.println(studentId + " " + studentName
                               + " " + hostelFees + " "
                               + foodType);
        }
  
        // Closing the connection
        con.close();
    }
}


XML


  
    
        
        
        
        
    
  


Java
// Importing SQL classes
import java.sql.SQLException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
// Class
public class Main {
    public static void main(String[] args)
        throws SQLException, ClassNotFoundException
    {
  
        // Using ApplicationContext tom implement Spring IoC
        ApplicationContext context
            = new ClassPathXmlApplicationContext(
                "beans.xml");
  
        // Get the bean studentDAO
        StudentDAO studentDAO = context.getBean(
            "studentDAO", StudentDAO.class);
  
        // Calling the method
        studentDAO.selectAllRows();
    }
}


第 4 步:现在我们必须将外部 JAR 文件添加到 IntelliJ IDEA 项目中。 JAR(Java Archive)是一种包文件格式,通常用于将许多Java类文件和相关的元数据和资源(文本、图像等)聚合到一个文件中,以在Java平台上分发应用程序软件或库。简而言之,JAR 文件是包含 .class 文件、音频文件、图像文件或目录的压缩版本的文件。我们必须将以下外部 jar 文件添加到我们的Java项目中

  • 春天
  • MySQL 连接器

您可以参考这篇文章 How to Add External JAR File to an IntelliJ IDEA Project?。您可以从以下链接下载 jar 文件

  • 春天:点击这里
  • MySQL 连接器:单击此处

第 5 步:让我们在beans.xml文件中创建 StudentDAO 类的 bean,并通过 setter 注入来注入属性的值。你可以参考这篇文章 Spring – Injecting 字面量 Values By Setter Injection。下面是beans.xml文件的代码。

XML



  
    
        
        
        
        
    
  

第 6 步:创建 Main 类,让我们测试我们的应用程序是否运行良好。下面是Main 的代码。 Java文件。

Java

// Importing SQL classes
import java.sql.SQLException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
// Class
public class Main {
    public static void main(String[] args)
        throws SQLException, ClassNotFoundException
    {
  
        // Using ApplicationContext tom implement Spring IoC
        ApplicationContext context
            = new ClassPathXmlApplicationContext(
                "beans.xml");
  
        // Get the bean studentDAO
        StudentDAO studentDAO = context.getBean(
            "studentDAO", StudentDAO.class);
  
        // Calling the method
        studentDAO.selectAllRows();
    }
}

输出:您可以看到我们已成功从 MySQL 数据库中获取数据。

Retrieving all student data..
1 Asish 300.5 Veg
2 Vicky 245.89 Non Veg
3 Anshul 123.67 Veg