达梦数据库项目 SpringBoot + jpa + DM8
[帮你们填过坑了]针对国产化数据库''达梦'' Srpingboot + jpa + DM8实现增删改查
- 安装达梦数据库(已安装的小伙伴可以忽略这一步)
- 开始进入正题:
前言 : 对于要做zf行业项目的人来说,有些项目似乎需要数据库国产化,但是呢而我们日常所做的项目都是基于SSM框架运行的,数据库则是像主流的mysql,oracle,sqlServer等,今天就为大家带来不一样的新操作,本人踩过很长一段的坑,这里为大家填坑直接踩着我过去,今天为大家带来Springboot兼容达梦数据库,只能说希望国产化数据库越做越好吧!
安装达梦数据库(已安装的小伙伴可以忽略这一步)
没安装的小伙伴建议参考我的这篇文章 : 点我
开始进入正题:
- 首先添加依赖 :
<!-- 达梦数据库 --><dependency><groupId>com.dameng</groupId><artifactId>Dm8JdbcDriver18</artifactId><version>8.1.1.49</version></dependency><dependency><groupId>com.dameng</groupId><artifactId>DmDialect-for-hibernate5.0</artifactId><version>8.1.1.49</version></dependency><dependency><!--注意:只有这个版本的hibernate兼容达梦数据库 --><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.3.18.Final</version></dependency>
- 填写配置文件:
# 数据库相关
spring:datasource:url: jdbc:dm://localhost:5236?schema=你要连接的库名(这里在数据库叫模式)username: rootpassword: 123type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: dm.jdbc.driver.DmDriver
# jpa相关配置jpa:show-sql: falsehibernate:ddl-auto: updateopen-in-view: falseproperties:hibernate:dialect: org.hibernate.dialect.DmDialect
- 开始我们的代码
3.1 创建实体类
@Data
@Entity
@Table(name = "p_student")
public class StudentEntity implements Serializable{private static final long serialVersionUID = 1L;@Id@GeneratedValue(strategy = GenerationType.SEQUENCE)private int id;/**学生姓名*/private String name;/**学生年龄*/private int age;
}
这里会抛出一个一异常 : 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
// A code block
va```java
@RestController
@RequestMapping(value = "test")
public class TestController {// 将学生Jpa接口注入@Autowiredprivate StudentRepository studentRepository;// 这里为了不浪费大家时间我直接把代码写在conntroller层里面
@PostMapping("/save")
@DmSave(className = {"p_student"}) // 这里多个save实体,直接逗号分隔填入表名
public Response save(@RequestBody StudentEntity studentEntiy){*****看这里!!!!
// 同学们注意看这里,好好听好好学,这里肯定会报错,具体为什么报错,我也不知道啊,咱也不懂啊,好像是id自增的问题,需要自行百度List<StudentEntity> studentEntityList = studentRepository.save(studentEntiy);
return studentEntityList ;
}}
- 解决报错:
这里我们需要用到切面:
4.1 创建自定义注解
/*** @author tongJie* @date 2021/7/16 13:34* <p>* description*/
@Documented
@Target({ElementType.PARAMETER,ElementType.METHOD,ElementType.TYPE_USE,ElementType.TYPE_PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface DmSave {String[] className() default "";
}
4.2 创建切面
/*** @author tongJie* @date 2021/7/16 11:58* 达梦数据库切面* <p>* description*/
@Aspect
@Component
public class DmSystemLogAspect {@Autowiredprivate DmSQLMapper dmSQLMapper;@Pointcut("@annotation(自定义注解文件的位置)")public void controllerAspect(){}@Before("controllerAspect()")public void on(JoinPoint point){// 获取注解中的参数值MethodSignature methodSignature = (MethodSignature)point.getSignature();Method method = methodSignature.getMethod();// 获取注解ActionDmSave annotation = method.getAnnotation(DmSave.class);// 获取了参数类名String[] strings = annotation.className();if (strings.length > 0){// 进行达梦数据库on操作for (String tableName : strings) {dmSQLMapper.on(tableName);}}}@AfterReturning("controllerAspect()")public void off(JoinPoint point){// 获取注解中的参数值MethodSignature methodSignature = (MethodSignature)point.getSignature();Method method = methodSignature.getMethod();// 获取注解ActionDmSave annotation = method.getAnnotation(DmSave.class);// 获取了参数类名String[] strings = annotation.className();if (strings.length > 0){// 进行达梦数据库on操作for (String tableName : strings) {dmSQLMapper.on(tableName);}}}
}
好了今天为大家带来的就是这些了,有什么不会的记得私信我!
达梦数据库项目 SpringBoot + jpa + DM8相关推荐
- 中标麒麟系统下(Neokylin7)达梦数据库的安装(DM8)
1. 环境检查 (1) 操作系统检查 [root@localhost ~]# uname -ra (2) glibc/glibc-devel包检查 [root@localhost ~]# rpm -q ...
- 达梦数据库DG搭建(DM8)
一.环境准备: 1.三台服务器,分别为: IP地址: 主库:192.168.172.147 备库:192.168.172.148 监视器:192.168.172.149 操作系统:Linux 7系列 ...
- 达梦数据库自动备份,DM8设置自动备份,达梦数据库,自动备份。详细步骤。常用命令,启动关闭数据库,查看DMAP状态
常用命令 DmServiceDAMENG.service改成自己bin目录下文件名 运维常见问题,官方文档 注意事项 登录客户端工具,一定要使用SYSDBA用户进行下面的客户端操作 登录数据库主机,一 ...
- 图形化初始化达梦数据库
执行dbca脚本创建达梦数据库 [dmdba@dmdb1 DAMENG]$/dm8/dmdbms/tool/dbca.sh 初始化数据库欢迎界面 选择"创建数据库实例" 用途选择& ...
- 你不知道的达梦数据库
达梦数据库简介 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是8.0版本,简称DM8. DM8采用全新的体系架构,在保证大型通用 ...
- 【达梦数据库】表空间
文章目录 前言 1 表空间介绍 2 表空间操作 3 页大小与表空间 4 页大小对表空间的影响测试 总结 前言 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空 ...
- 达梦DCA之SpringBoot集成达梦数据库
受"华为.中兴事件"影响,我国科技尤其是上游核心技术受制于人的现状对我国经济发展.社会稳定等都提出了严峻考验.大力发展科技产业,鼓励科技创新,成为当下时不我待的命题.中美贸易战以来 ...
- springBoot+mybaits+达梦数据库
近年,随着国家的呼应,越来越多的国企相关企业都面临着技术转型,其中数据库也渐渐从mysql.Oracle...转到国内呼声最高的达梦数据库:开发阶段使用一个相对陌生点的数据库还不是什么困难的业务实现, ...
- 达梦(DM)4、SpringBoot集成MyBatisPlus+达梦数据库(DM)
最近在做一个政府项目,由于项目之前使用的 MySQL 数据库,为了适配国产化,需要将 MySQL 换成 达梦数据库(DM),本次我选择了达梦数据库8(DM8),以下是切换过程 写在前面 关于Sprin ...
最新文章
- 传统图像处理与深度学习又一结合:时空多尺度非局部自相似集成视频超分
- 判断 Map 中是否包含指定的 key 和 value
- 个人三观的东西(1)
- 高端存储器研发再获突破 集成电路国产化进程加快
- 用HTML语言制作一个非常浪漫的生日祝福网,手把手教你制作炫酷生日祝福网页
- android9 三星 港版,三星S10+官方港版安卓9完整固件升级更新包:TGY-G9750ZHU1ASF1
- 2018年全国多校算法寒假训练营练习比赛(第三场)---I---题(皮克公式)
- WDF基本对象和句柄定义
- php模板生成pdf,PHP生成PDF
- JAVA毕业设计冠军体育用品购物网站计算机源码+lw文档+系统+调试部署+数据库
- python判断按键是否按下_Pygame检测是否按下了一个键?
- 任泽平:中国收入分配报告2021最新白皮书
- ctf的flask模板注入config、current_app、url_for和get_flashed_messages(转自浩哥)
- 苹果触控鼠标和触控板 (4) jitouch
- CSS 实现优惠券的技巧
- .Net6 图片转文字PictureToTxt
- 【MVC-自定义过滤器】
- 剪辑视频怎么添加背景视频
- 堡垒机如何传输文件_mac 堡垒机传文件
- Linux无文件木马程序渗透测试复现
热门文章
- C语言实现贪吃蛇小游戏1.0
- 计算机对油画发展的影响,论当代中国油画多元化的发展,社会变化对油画多元化进一步影响!...
- js日期时间比较大小
- 【Unity入门】25.零基础实现游戏Demo--神鸟大战怪兽
- 5GNR漫谈13:Zadoff –Chu(ZC)序列性质
- Word控件Spire.Doc 转换教程(二十三):保留或禁用从 Word 到 PDF 转换的超链接
- 2021SC@SDUSC山东大学软件学院软件工程应用与实践--quark renderer代码分析 第十二篇 绘画系统分析(3):连线(line)
- 苹果应用商店 服务器出错,Mac App store出现未知错误怎么办?Mac市场错误解决办法...
- security用法
- 本科生学java华丽转型 人生大逆转从洛阳达内开启