spring boot整合JPA兼容MySQL8和达梦数据库8
创始人
2024-11-14 17:35:03
0次

前言

Spring Boot是一个基于Spring框架的快速开发框架,它可以简化Spring应用的配置和部署过程。JPA(Java Persistence API)是Java持久化规范的一种实现,它提供了一种统一的方式来访问和管理数据库。MySQL和达梦数据库都是常用的关系型数据库,在Spring Boot中兼容这两种数据库可以让我们根据实际需求选择合适的数据库进行开发。

一、添加依赖

在pom.xml文件中添加Spring Boot和JPA的依赖项。同时,根据需要添加MySQL和达梦数据库的驱动依赖。

                                                mysql             mysql-connector-java                                com.dameng             DmJdbcDriver18                               com.dameng             DmDialect-for-hibernate5.3                                             org.hibernate             hibernate-core                                org.springframework.boot             spring-boot-starter-jdbc                                        org.springframework.boot             spring-boot-starter-data-jpa                                                   hibernate-core                     org.hibernate                                        

二、配置数据库连接

在application.properties或application.yml文件中配置数据库连接信息,包括URL、用户名和密码等。
根据active随意切换MySQL和达梦数据库。

1.application.yaml

server:   port: 8678   shutdown: graceful  spring:   profiles:     active: mysql #    active: dm 

2.application-dm.yaml

spring:   datasource:     driver-class-name: dm.jdbc.driver.DmDriver     url: jdbc:dm://127.0.0.1:5236/P_API?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8     username: p_api     password: p_api     open-in-view: false     properties:       hibernate:         dialect: org.hibernate.dialect.DmDialect     dbcp2:       test-on-borrow: true       validation-query: SELECT 1   jpa:     #    database: mysql     database-platform: org.hibernate.dialect.DmDialect     properties:       hibernate:         #模式名称         default_schema: PROCESSON_API         dialect: org.hibernate.dialect.DmDialect         #        hbm2ddl:         #          #和上面spring.jpa.hibernate.ddl-auto类似         #          auto: update         #        #和上面spring.jpa.show-sql类似         #        show_sql: true         temp:           use_jdbc_metadata_defaults: false 

3.application-mysql.yaml

spring:   datasource:     driver-class-name: com.mysql.cj.jdbc.Driver     url: jdbc:mysql://192.168.10.136:3306/p_api?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true     username: root     password: 123456   jpa:     database: mysql     database-platform: org.hibernate.dialect.MySQL8Dialect     properties:       hibernate:         #模式名称         default_schema: p_api         dialect: org.hibernate.dialect.MySQL8Dialect         #        hbm2ddl:         #          #和上面spring.jpa.hibernate.ddl-auto类似         #          auto: update         #        #和上面spring.jpa.show-sql类似         #        show_sql: true         temp:           use_jdbc_metadata_defaults: false 

三、创建实体类

使用JPA的注解在Java类中定义实体类,定义表名和字段的映射关系。

@Entity @Table(name = "sys_user") @Data @AllArgsConstructor @NoArgsConstructor public class User implements Serializable {     @Id     @GeneratedValue(strategy = GenerationType.IDENTITY)     private Long id;      @Column(name = "user_name", length = 64)     private String userName;      @Column(length = 64)     private String account;      @Column(length = 64)     private String mobile;      @Column(length = 64)     private String email;      @Column(length = 16)     private String role;      @Column(length = 128)     private String salt;      @Column(length = 128)     private String passwordMd5;  } 

四、创建Repository接口

创建一个继承自JpaRepository的接口,用于定义数据库操作方法。

@Repository public interface UserRepository extends JpaRepository {     Optional findByAccount(String account); } 

五、编写业务逻辑

在Service中编写业务逻辑,并调用Repository接口中定义的方法进行数据库操作。

@Service @Slf4j public class LoginServiceImpl implements LoginService {      @Resource     private UserRepository userRepository;      @Transactional(rollbackFor = Exception.class)     @Override     public R login(HttpServletResponse response, String account, String password) {         Subject subject = SecurityUtils.getSubject();         UsernamePasswordToken token = new UsernamePasswordToken(account, password);          try         {             subject.login(token);         } catch (UnknownAccountException uae)         {             return R.error(GlobalErrorCodeConstants.ERROR_CODE_ACCOUNT_NOT_EXIST);         } catch (AuthenticationException ae)         {             return R.error(GlobalErrorCodeConstants.ERROR_CODE_PASSWORD_INCORRECT);         }          if (subject.isAuthenticated())         {             long timeout = subject.getSession().getTimeout();             log.info("Login success {}", timeout);         } else         {             token.clear();             return R.error(GlobalErrorCodeConstants.ERROR_CODE_PASSWORD_INCORRECT);         }          Object sessionId = subject.getSession().getId(); //        response.setHeader("authToken", sessionId.toString());          Map map = Maps.newConcurrentMap();         map.put("authToken", sessionId.toString());         return R.success(map);     } }  

总结

通过以上步骤,我们可以实现在Spring Boot中同时兼容MySQL和达梦数据库的JPA开发。在运行应用时,可以根据配置文件中的数据库连接信息自动连接到对应的数据库。同时,使用JPA可以提供一种统一的方式来进行数据库操作,无论是MySQL还是达梦数据库,都可以使用相同的代码进行访问和管理。这样可以提高开发效率并减少代码量。

相关内容

热门资讯

查到实测透视挂操作!勇者之心多... 查到实测透视挂操作!勇者之心多功能透视挂软件,勇者之心确实真的是有辅助软件所有人都在同一条线上,像星...
一分钟揭秘透视练习!任丘娱乐多... 一分钟揭秘透视练习!任丘娱乐多功能透视方法,任丘娱乐切实是有辅助方法1)任丘娱乐有没有挂:进一步探索...
揭秘一下辅助器窍要!悦心多功能... 揭秘一下辅助器窍要!悦心多功能辅助器方法,悦心本来是有辅助方法暗藏猫腻,小编详细说明悦心破解器有用吗...
重大通报透视挂讲义!聚旺互娱多... 重大通报透视挂讲义!聚旺互娱多功能透视挂工具,聚旺互娱原来真的有辅助工具1、很好的工具软件,可以解锁...
揭秘真相透视教程书!久盛多功能... 揭秘真相透视教程书!久盛多功能透视app,久盛其实确实有辅助app亲,关键说明,久盛透视脚本安卓赛季...
盘点几款透视法子!兴贝棋牌多功... 盘点几款透视法子!兴贝棋牌多功能透视教程,兴贝棋牌果然存在有辅助教程1.兴贝棋牌 选牌创建新账号,点...
刚刚辅助器办法!欢乐斗牛多功能... 刚刚辅助器办法!欢乐斗牛多功能辅助器工具,欢乐斗牛原来真的有辅助工具1、全新机制【欢乐斗牛ai辅助工...
做出回应透视挂窍要!66红中麻... 做出回应透视挂窍要!66红中麻将多功能透视挂教程,66红中麻将都是确实有辅助教程1、进入到66红中麻...
一分钟了解透视妙招!九九多功能... 一分钟了解透视妙招!九九多功能透视工具,九九总是确实有辅助工具1、完成九九辅助器v3.3的残局,帮助...
2024教程辅助挂手筋!兴贝棋... 2024教程辅助挂手筋!兴贝棋牌多功能辅助挂工具,兴贝棋牌一贯是真的有辅助工具1、用户打开应用后不用...