📜  Spring JDBC-第一个应用程序(1)

📅  最后修改于: 2023-12-03 15:35:03.384000             🧑  作者: Mango

Spring JDBC-第一个应用程序

简介

本文将介绍Spring JDBC的第一个应用程序,让程序员快速了解如何使用Spring JDBC。

Spring JDBC是Spring的一个子项目,是一个JDBC的封装器,它提供了一种简单的方式来管理基于JDBC的数据库连接和事务。

环境准备

在开始之前,我们需要准备以下环境:

  • JDK 1.8或更高版本
  • Spring JDBC
  • MySQL数据库
搭建项目
  1. 创建一个新的Maven项目,取名为spring-jdbc-demo。

  2. 在pom.xml中添加以下依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.9.RELEASE</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.21</version>
</dependency>

以上依赖的作用是添加Spring JDBC和MySQL驱动。

  1. 创建一个配置文件spring-config.xml,并将其添加到src/main/resources目录下。

在配置文件中添加以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-5.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-5.2.xsd">

    <!--注入数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=UTC"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
    </bean>

    <!--配置JdbcTemplate-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>

</beans>

在这个配置文件中,我们使用dataSource来注入MySQL数据库,然后使用jdbcTemplate配置数据库的操作。

开始编写程序

我们将创建一个简单的表来测试我们的Spring JDBC应用程序。

在MySQL数据库中创建一个名为employee的表,表结构如下:

CREATE TABLE `employee` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `age` int NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

然后往表中添加一些数据:

INSERT INTO `employee` (name, age) VALUES ('张三', 20);
INSERT INTO `employee` (name, age) VALUES ('李四', 25);
INSERT INTO `employee` (name, age) VALUES ('王五', 30);

接下来我们将编写Java代码,使用Spring JDBC查询我们的数据。

  1. 创建一个Employee类,用于保存查询结果。
public class Employee {

    private int id;

    private String name;

    private int age;

    // getters and setters
}
  1. 创建一个EmployeeDao接口,定义查询方法。
public interface EmployeeDao {

    List<Employee> getEmployeeList();

}
  1. 创建一个EmployeeDaoImpl类,实现EmployeeDao接口。
public class EmployeeDaoImpl implements EmployeeDao {

    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @Override
    public List<Employee> getEmployeeList() {
        String sql = "SELECT * FROM employee";
        return jdbcTemplate.query(sql, new RowMapper<Employee>() {
            @Override
            public Employee mapRow(ResultSet resultSet, int i) throws SQLException {
                Employee employee = new Employee();
                employee.setId(resultSet.getInt("id"));
                employee.setName(resultSet.getString("name"));
                employee.setAge(resultSet.getInt("age"));
                return employee;
            }
        });
    }

}

在以上代码中,我们使用JdbcTemplate来执行SQL查询,并将查询结果映射到List<Employee>中。

  1. 创建一个Main类,用于运行我们的程序。
public class Main {

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        EmployeeDao employeeDao = (EmployeeDao) context.getBean("employeeDao");
        List<Employee> employees = employeeDao.getEmployeeList();
        employees.forEach(System.out::println);
    }

}

在以上代码中,我们加载配置文件并获取EmployeeDao的bean,然后调用getEmployeeList方法来查询数据。

运行程序

我们现在可以运行我们的程序,然后查看控制台输出:

Employee{id=1, name='张三', age=20}
Employee{id=2, name='李四', age=25}
Employee{id=3, name='王五', age=30}

恭喜你,你已经完成了Spring JDBC的第一个应用程序!