Spring Boot实践三 --数据库访问(JdbcTemplate、MyBatis、JPA Hibernate)
2024.01.17 17:11浏览量:9简介:本文将详细介绍如何在Spring Boot中使用JdbcTemplate、MyBatis和JPA Hibernate进行数据库访问,并通过实例展示它们的用法和特点。
在Spring Boot中,访问数据库通常涉及到三个常用的技术:JdbcTemplate、MyBatis和JPA Hibernate。它们都是Spring框架提供的持久层框架,用于简化数据库访问操作。下面我们将分别介绍它们的用法和特点。
一、JdbcTemplate
JdbcTemplate是Spring JDBC模块的核心类,它提供了一组简便的数据库访问方法,可以自动处理许多常见的数据库操作,如连接管理、异常处理等。
- 配置数据源
在Spring Boot中,通过在application.properties或application.yml文件中配置数据源信息,Spring Boot会自动配置数据源。以下是一个示例:spring.datasource.url=jdbc
//localhost:3306/mydbspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 使用JdbcTemplate
在Java代码中,通过注入JdbcTemplate对象,可以调用其提供的方法执行数据库操作。以下是一个简单的示例:
在这个示例中,我们通过@Autowired注解将JdbcTemplate注入到UserService类中,并使用其query()方法查询所有用户信息。UserRowMapper是一个自定义的RowMapper实现,用于将查询结果映射到User对象。import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class UserService {private final JdbcTemplate jdbcTemplate;@Autowiredpublic UserService(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}public List<User> getAllUsers() {return jdbcTemplate.query(new UserRowMapper());}}
二、MyBatis
MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 - 配置MyBatis
在Spring Boot中,通过添加MyBatis的依赖并配置MyBatis的配置文件或注解,可以启用MyBatis的支持。以下是一个示例:
在pom.xml中添加依赖:
在application.properties或application.yml文件中配置MyBatis:<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency>
mybatis.mapper-locations=classpath:mapper/*.xmlmybatis.type-aliases-package=com.example.demo.model
- 使用MyBatis
在Java代码中,通过创建Mapper接口并使用@Mapper注解标记,可以定义SQL操作方法。以下是一个简单的示例:
创建Mapper接口:
```java
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import com.example.demo.model.User;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*; // 导入相关包类
@Mapper // MyBatis的注解,表示该接口是一个MyBatis的Mapper接口。 定义接口后,MyBatis会自动扫描到这个接口,并为之生成实现类。 无需XML配置文件或注解配置方式实现映射。 具体实现类由MyBatis框架自动提供。 接口中的方法名即SQL语句的ID。 参数列表中的参数类型对应于SQL语句中的参数类型。 返回值类型对应于SQL语句中的结果集类型。 接口中的方法名即SQL语句的ID。 参数列表中的参数类型对应于SQL语句中的参数类型。

发表评论
登录后可评论,请前往 登录 或 注册