springboot数据库连不了时切换

springboot数据库连不了时切换,第1张

网络问题。SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。springboot数据库连不了时切换是因为网络问题,更换网络即可。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域成为领导者。

1,需要配置DynamicDataSource,DynamicDataSourceAspect,DynamicDataSourceContextHolder,DynamicDataSourceRegister,TargetDataSource来完成多数据源的配置 2,需要在配置文件中定义多数据源 3,测试过只有在前端调用过程中能够用多数据源,如果在各个中心去配置是行不通的,已经亲测过了。可以看看csdn上的我的这篇文章: spring boot动态数据源配置

spring boot访问数据库有很多方法,比较常见的就是用mybatis访问数据库。

你需要先学习mybatis知识,建议看一下轻量级java web(ssm)这本书,讲得很详细,

掌握mybatis之后,访问数据库就非常方便了,不管你是否打成jar包,访问数据库都是一样的。

BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。

beatlsql 优点

引入依赖

这几个依赖都是必须的。

整合阶段

由于springboot没有对 beatlsql的快速启动装配,所以需要我自己导入相关的bean,包括数据源,包扫描,事物管理器等。

在application加入以下代码:

在resouces包下,加META_INF文件夹,文件夹中加入spring-devtoolsproperties:

restartincludebeetl=/beetl-232jar

restartincludebeetlsql=/beetlsql-231jar

在templates下加一个indexbtl文件。

加入jar和配置beatlsql的这些bean,以及resources这些配置之后,springboot就能够访问到数据库类。

举个restful的栗子

初始化数据库的表

bean

数据访问dao层

接口继承BaseMapper,就能获取单表查询的一些性质,当你需要自定义sql的时候,只需要在resouses/sql/accountmd文件下书写文件:

其中“=== ”上面是唯一标识,对应于接口的方法名,“ ”后面是注释,在下面就是自定义的sql语句,具体的见官方文档。

web层

这里省略了service层,实际开发补上。

通过postman 测试,代码已全部通过。

个人使用感受,使用bealsql做了一些项目的试验,但是没有真正用于真正的生产环境,用起来非常的爽。但是springboot没有提供自动装配的直接支持,需要自己注解bean。另外使用这个orm的人不太多,有木有坑不知道,在我使用的过程中没有遇到什么问题。另外它的中文文档比较友好。

Spring测试框架提供MockMvc对象,可以在不需要客户端-服务端请求的情况下进行MVC测试,完全在服务端这边就可以执行Controller的请求,跟启动了测试服务器一样。

测试开始之前需要建立测试环境,setup方法被@Before修饰。通过工具,使用对象作为参数,创建一个MockMvc对象。

其他主从方式配置模板

@DS 可以注解在方法上和类上,同时存在方法注解优先于类上注解。

强烈建议只注解在service实现上。

某些springBoot的版本上面可能无法排除(尝试使用以下方式排除)

新建Spring Boot项目,依赖选择JPA(spring-boot-starter-data-jpa)和Web(spring-bootstarter-web)。

配置基本属性 在applicationproperties里配置数据源和jpa的相关属性

springdatasourcedriverClassName=commysqljdbcDriver

springdatasourceurl=jdbc:mysql://localhost:3306/springboot

springdatasourceusername=root

springdatasourcepassword=123456

springjpahibernateddl-auto=update

springjpashow-sql=true

springjacksonserializationindent_output=true

定义映射实体类

定义Controller类

@RestControllerpublic class PersonCtroller {

@Autowired PersonServer personServer;

@RequestMapping("/rollback")

public Person rollback(Person person){

return personServersavePersonWithRollBack(person);

}

@RequestMapping("/norollback")

public Person noRollback(Person person){

return personServersavePersonWithOutRollBack(person);

}

}

定义数据访问层

public interface PersonRepository extends JpaRepository<Person, Long> {}

定义Server层

@Servicepublic class PersonServerImp implements PersonServer {

@Autowired

PersonRepository personRepository;

@Transactional(rollbackFor = {IllegalArgumentExceptionclass})

@Override

public Person savePersonWithRollBack(Person person) {

Person p = personRepositorysave(person);

if (pgetName()equals("xxx")){

throw new IllegalArgumentException("用户已存在,数据会回滚");

}

return p;

}

}

以上就是关于springboot数据库连不了时切换全部的内容,包括:springboot数据库连不了时切换、springboot怎样动态配置数据库并设置默认数据源、springboot打成jar包后如何访问数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9705077.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存