📜  连接数据库 springboot - SQL (1)

📅  最后修改于: 2023-12-03 14:57:57.954000             🧑  作者: Mango

连接数据库 Springboot - SQL

Spring Boot 是一款非常流行的 Java 应用程序框架,广泛应用于 Web 应用程序和企业级应用程序的开发中。随着现代应用程序越来越需要使用数据库来处理数据,连接数据库成为了开发人员的一个常见需求。本文将介绍如何使用 Spring Boot 连接数据库并执行 SQL 命令。

准备工作

在开始编写代码之前,需要先准备好以下工具:

  • Java SDK:需要下载并安装 Java SDK。
  • Spring Boot:可以在官网下载 Spring Boot,或使用依赖管理工具,如 Maven 或 Gradle。
  • 数据库:可以使用任何一种 SQL 数据库,如 MySQL、PostgreSQL、Oracle 等。请确保安装了数据库相关的驱动程序。
配置文件

在连接数据库时,需要在 Spring Boot 应用程序中配置数据库参数。可以使用 Spring Boot 的 application.propertiesapplication.yml 文件来配置,例如:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: myusername
    password: mypassword
    driver-class-name: com.mysql.cj.jdbc.Driver

以上配置文件中,urlusernamepassword 是数据库连接所需的基本信息。driver-class-name 指定 JDBC 驱动程序的类名。如果使用其他数据库,请相应修改 urldriver-class-name

注意,此处的配置文件是使用 YAML 格式的,如果使用 application.properties 格式,应按以下格式修改:

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=myusername
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
配置 Bean

在 Spring Boot 中,可以使用注解 @Bean 定义对象并将其注册到应用程序上下文中。使用 @Bean 注解来创建 JdbcTemplateDataSource,以便后续将其用于数据库操作。例如:

@Configuration
public class AppConfig {

    @Autowired
    private Environment env;

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
        dataSource.setUrl(env.getProperty("spring.datasource.url"));
        dataSource.setUsername(env.getProperty("spring.datasource.username"));
        dataSource.setPassword(env.getProperty("spring.datasource.password"));
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        jdbcTemplate.setResultsMapCaseInsensitive(true);
        return jdbcTemplate;
    }

}

以上代码中,DataSource 使用了 DriverManagerDataSource 对象。JdbcTemplate 会自动从应用程序上下文中获取 DataSource 和事务管理器(如果使用了事务)。setResultsMapCaseInsensitive 方法用于设置结果集大小写不敏感。

执行 SQL

一旦完成了以上配置,就可以使用 JdbcTemplate 来执行 SQL 语句。以下是一些例子:

执行 INSERT
@Autowired
private JdbcTemplate jdbcTemplate;

public void insert(String username, String password) {
    jdbcTemplate.update("INSERT INTO users (username, password) VALUES (?, ?)", username, password);
}
执行 UPDATE
@Autowired
private JdbcTemplate jdbcTemplate;

public void update(String username, String password) {
    jdbcTemplate.update("UPDATE users SET password = ? WHERE username = ?", password, username);
}
执行 SELECT
@Autowired
private JdbcTemplate jdbcTemplate;

public List<User> findAll() {
    return jdbcTemplate.query("SELECT * FROM users",
            (rs, rowNum) -> new User(
                    rs.getLong("id"),
                    rs.getString("username"),
                    rs.getString("password"))
    );
}

以上 findAll 方法用于获取所有用户信息,返回类型为 List<User>。使用 RowMapper 接口来映射结果集中的行到实体对象中。

总结

通过本文的介绍,可以了解到 Spring Boot 中连接数据库并执行 SQL 的方法。需要进行的配置有 application.propertiesapplication.yml 文件,以及 Bean 的配置。之后就可以使用 JdbcTemplate 来执行 SQL 语句,非常方便易用。