SpringBoot数据层解决方案
1.sql
-
现在数据库解决方案技术选型
Druid+Mybatis-Plus+MySQL
-
数据源:使用的DruidDataSource
#这种是用的比较多的
#spring:
# datasource:
# druid:
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/sms?serverTimezone=UTC
# username: root
# password: 123456
spring这是druid数据源配置的两种方式。这样多可以使用Druid数据源在测试中显示:
假如说我们要是在配置数据源时没有表明Druid:
spring
这种形式去操作,在进行测试中我们能看到:
没有表明使用Druid,但是却是使用了Druid,这因为我们在pom.xml中有Druid的坐标
<!-- druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>这样配置会自动匹配到Druid数据源
当我们把pom中的Druid的坐标给去掉,也能正常运行,在进行测试查看:
可以看到一个HikariPool数据源:这个Hikari是SpringBoot内置的数据源,并且还可以进一步的对其进行配置:
spring
注意:其中url要是放到hikari下面会进行一个报错:
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver classSpringBoot提供了3种内嵌的数据源对象供开发者选择使用
-
HikariCP:默认内置数据源对象
-
Tomcat提供DataSource:HikariCP不可用的情况下,且在web环境中,将使用Tomcat服务器配置的数据源对象
-
Commons DBCP:HikariCP不可用,Tomcat数据源也不可用,将使用dbcp数据源
-
持久化技术:Mybatis-Plus | Mybatis
数据层解决方案也可以使用JdbcTemplate来代替Mybatis-Puls|Mybatis。
使用SpringBoot的Jdbc可以来解决持久化技术的方案:
使用步骤:
-
坐标
<!-- 加载数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 操作数据库的模板对象-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>注意使用JdbcTemplate时还是需要数据库的驱动的,但是不需要把mybatis坐标带
-
yml配置需要进行连接
spring
这里使用HikariCP内置的数据源进行操作
-
进行测试
@SpringBootTest
public class DBTest {
@Autowired
private BookService bookService;
/**
* 进行更换数据源测试
*/
@Test
public void test1(){
List<Book> list = bookService.listAll();
// System.out.println(list);
}
/**
* 更换持久化方案
* @param jdbcTemplate 使用JdbcTemplate来进行持久化
*/
@Test
public void test2(@Autowired JdbcTemplate jdbcTemplate){
List<Book> query = jdbcTemplate.query("select * from book", new BeanPropertyRowMapper<Book>(Book.class));
System.out.println(query);
}
}并且在yml中JdbcTemplate还可以进行一些配置:
-
数据库:MySQL
-
SpringBoot还给我们内置了一些数据库:
H2;
HSQL;
Derby
但是这些内置数据库也有各种的优缺点,若是想要了解可以去他们的官网学习一下。
技术选型:
以及其他的技术选型。
2.Nosql
1.redis
redis是一款key-value存储结构的内存级NoSQL数据库
-
支持多种数据存储格式
-
支持持久化
-
支持集群
2.MongoDB
可以查看MongoDB教程 来源于菜鸟教程
3.ES(Elasticsearch)
可以查看ES教程 来源于菜鸟教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!