📅  最后修改于: 2023-12-03 14:57:57.954000             🧑  作者: Mango
Spring Boot 是一款非常流行的 Java 应用程序框架,广泛应用于 Web 应用程序和企业级应用程序的开发中。随着现代应用程序越来越需要使用数据库来处理数据,连接数据库成为了开发人员的一个常见需求。本文将介绍如何使用 Spring Boot 连接数据库并执行 SQL 命令。
在开始编写代码之前,需要先准备好以下工具:
在连接数据库时,需要在 Spring Boot 应用程序中配置数据库参数。可以使用 Spring Boot 的 application.properties
或 application.yml
文件来配置,例如:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: myusername
password: mypassword
driver-class-name: com.mysql.cj.jdbc.Driver
以上配置文件中,url
、username
和 password
是数据库连接所需的基本信息。driver-class-name
指定 JDBC 驱动程序的类名。如果使用其他数据库,请相应修改 url
和 driver-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
在 Spring Boot 中,可以使用注解 @Bean
定义对象并将其注册到应用程序上下文中。使用 @Bean
注解来创建 JdbcTemplate
和 DataSource
,以便后续将其用于数据库操作。例如:
@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
方法用于设置结果集大小写不敏感。
一旦完成了以上配置,就可以使用 JdbcTemplate
来执行 SQL 语句。以下是一些例子:
@Autowired
private JdbcTemplate jdbcTemplate;
public void insert(String username, String password) {
jdbcTemplate.update("INSERT INTO users (username, password) VALUES (?, ?)", username, password);
}
@Autowired
private JdbcTemplate jdbcTemplate;
public void update(String username, String password) {
jdbcTemplate.update("UPDATE users SET password = ? WHERE username = ?", password, username);
}
@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.properties
或 application.yml
文件,以及 Bean
的配置。之后就可以使用 JdbcTemplate
来执行 SQL 语句,非常方便易用。