JdbcTemplate在SpringBoot中查询MySQL数据库

在开发环境中,采用Spring Boot框架结合JDBC进行数据库操作是一种常见且高效的方式。您给出的代码段展示了如何利用Spring Boot中的JdbcTemplate执行基本的数据库操作,包括创建表、插入、更新、删除、查询单条记录、查询多条记录、以及批量插入数据。下面是对这些操作的一个总结整合,旨在提供一个更清晰、全面的理解。

1. 环境准备

首先,确保你的Spring Boot项目中已经包含了对应MySQL驱动的依赖。在pom.xml中添加如下依赖:

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

同时,在application.yml中配置数据库连接信息:

# 数据库连接配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/bsqx?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root # 数据库用户
    password: your_password # 密码
    driver-class-name: com.mysql.cj.jdbc.Driver # 数据库驱动名称

2. 创建表

使用JdbcTemplate执行SQL语句来创建一个名为users的表:

String sql = "CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255))";
jdbcTemplate.execute(sql);

3. 插入数据

插入一条用户记录:

String insertSql = "INSERT INTO users (name) VALUES (?)";
jdbcTemplate.update(insertSql, "Alice");

4. 更新数据

更新用户名称:

String updateSql = "UPDATE users SET name = ? WHERE id = ?";
jdbcTemplate.update(updateSql, "Bob", 1);

5. 删除数据

根据ID删除用户记录:

String deleteSql = "DELETE FROM users WHERE id = ?";
jdbcTemplate.update(deleteSql, 1);

6. 查询数据

  • 查询单个字段值:

String selectSql = "SELECT name FROM users WHERE id = ?";
String name = jdbcTemplate.queryForObject(selectSql, String.class, 1);
  • 查询多个字段值到列表:

String selectSql = "SELECT name FROM users";
List<String> names = jdbcTemplate.queryForList(selectSql, String.class);
  • 查询结果到Map列表:

String selectSql = "SELECT id, name FROM users";
List<Map<String, Object>> rows = jdbcTemplate.queryForList(selectSql);
for (Map<String, Object> row : rows) {
    Integer id = (Integer) row.get("id");
    String name = (String) row.get("name");
}
  • 查询单行记录到Map:

String selectSql = "SELECT * FROM users WHERE id = ?";
Map<String, Object> userMap = jdbcTemplate.queryForMap(selectSql, 1);

7. 批量插入

执行批量插入操作:

String insertSql = "INSERT INTO users (name) VALUES (?)";
List<Object[]> batchArgs = Arrays.asList(
    new Object[]{"Alice"},
    new Object[]{"Bob"},
    new Object[]{"Charlie"}
);
jdbcTemplate.batchUpdate(insertSql, batchArgs);

通过上述示例,我们可以看到JdbcTemplate提供了简洁、直观的方法来执行各种数据库操作,极大地简化了与数据库交互的过程。这种直接操作方式适用于快速开发和简单场景,对于复杂查询或者需要更高级的数据映射功能时,可以考虑使用ORM框架如MyBatis或Hibernate。


  1.  
  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring Boot可以通过JdbcTemplate或者Spring Data JPA来查询MySQL数据库。 1. 使用JdbcTemplate JdbcTemplateSpring框架提供的一个用于简化JDBC操作的工具类。使用JdbcTemplate查询MySQL数据库的步骤如下: 1)在pom.xml文件添加MySQL驱动依赖: ``` <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8..23</version> </dependency> ``` 2)在application.properties文件配置MySQL数据库连接信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3)在Java代码使用JdbcTemplate查询MySQL数据库: ``` @Autowired private JdbcTemplate jdbcTemplate; public List<User> getUsers() { String sql = "SELECT * FROM user"; List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class)); return users; } ``` 2. 使用Spring Data JPA Spring Data JPA是Spring框架提供的一个用于简化JPA操作的工具类。使用Spring Data JPA查询MySQL数据库的步骤如下: 1)在pom.xml文件添加Spring Data JPA和MySQL驱动依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8..23</version> </dependency> ``` 2)在application.properties文件配置MySQL数据库连接信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true ``` 3)定义实体类和Repository接口: ``` @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "age") private Integer age; // 省略getter和setter方法 } @Repository public interface UserRepository extends JpaRepository<User, Long> { } ``` 4)在Java代码使用Repository查询MySQL数据库: ``` @Autowired private UserRepository userRepository; public List<User> getUsers() { List<User> users = userRepository.findAll(); return users; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyanqa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值