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、蛮王辅助辅助软件下载优化,蛮王辅助底牌透视脚本科...
发现一款!大巴杭州辅助(辅助辅... 发现一款!大巴杭州辅助(辅助辅助挂)都是有透视办法大巴杭州辅助透视方法中分为三种模型:大巴杭州辅助靠...
盘点十款!琼戏互娱破解版(分享... 盘点十款!琼戏互娱破解版(分享辅助器)一贯有透视机巧琼戏互娱破解版是不是有人用挂微扑克wpk插件教程...
总算了解!新道游辅助软件下载(... 总算了解!新道游辅助软件下载(解谜辅助软件)确实有透视课程1、这是跨平台的新道游辅助软件下载轻量版有...
重要通知!新超凡辅助(开挂辅助... 重要通知!新超凡辅助(开挂辅助app)真是有透视手筋1、新超凡辅助脚本辅助下载、新超凡辅助免费透视脚...
攻略讲解!微信小程序雀神辅助器... 攻略讲解!微信小程序雀神辅助器(专业辅助技巧)确实有透视步骤1、下载好微信小程序雀神辅助器透视辅助下...
玩家必看攻略!火神辅助免费下载... 玩家必看攻略!火神辅助免费下载(解谜辅助挂)其实有透视积累1)火神辅助免费下载免费钻石:进一步探索火...
指导大家!青鸟辅助器(解密辅助... 指导大家!青鸟辅助器(解密辅助脚本)原来有透视教程书青鸟辅助器透视方法中分为三种模型:青鸟辅助器靠谱...
最新通报!闲闲辅助器(揭露辅助... 最新通报!闲闲辅助器(揭露辅助工具)一贯有透视资料进入游戏-大厅左侧-新手福利-激活码辅助透视技能教...