达梦数据库(五) -------- 达梦数据库+mybatisPlus+springboot

前言:安装完达梦数据库后,需要初始化实例,在初始化实例时,需要注意大小写敏感的设置。大小写敏感只能在初始化数据库的时候设置,默认为大小写敏感,一旦设置成功就无法修改,如果想要修改,只能重新初始化实例。因为mybatisPlus+springboot查询时会自动去转换大小写,其中字段会转成带有“”的“field”,不如然会报错;

查询‍‍‍‍‍‍‍达梦数据库大小写是否敏感:

结果为 1 是大小写敏感;结果为 0 是不敏感。
SELECT CASE_SENSITIVE();

一丶.创建idea项目

新建一个项目,使用Spring Initializr初始化一个SpringBoot项目

二丶添加POM依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.puwang</groupId><artifactId>post-power-message</artifactId><version>0.0.1-SNAPSHOT</version><name>post-power-grid</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency><!--getter setter--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version><scope>provided</scope></dependency><!--連接池--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.dameng</groupId><artifactId>Dm8JdbcDriver18</artifactId><version>8.1.1.49</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*</include></includes></resource></resources></build>
</project>

三丶修改application.yml配置文件

server:port: 12001
spring:datasource:driver-class-name: dm.jdbc.driver.DmDriverurl: jdbc:dm://127.0.0.1:5236?schema=PERSON&compatibleMode=mysql&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghaiusername: SYSDBApassword: SYSDBA
mybatis-plus:configuration:# 驼峰转换 从数据库列名到Java属性驼峰命名的类似映射map-underscore-to-camel-case: false# 是否开启缓存cache-enable: false# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段#call-setters-on-nulls: true# 打印sqllog-impl: org.apache.ibatis.logging.stdout.StdOutImpl

四丶编写entity,注意TableName 把模式名称加上

@TableName(value = "AIJOB.PRODUCT")
@Data
public class Product implements Serializable {private static final long serialVersionUID = 1L;@TableId(value = "ID", type = IdType.AUTO)private Integer id;private String productName;private String bigData;@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime;}

五丶这个模式下分页可能会失效,加上分页的配置

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}

六丶添加业务代码

/*** @author xy丶* @version 1.0.0* @Date 2024/05/23 15:40**/
@RestController
@RequestMapping("/content/aiGlobalRate")
public class ProductController {@Autowiredprivate ProductService productService;/*** 查询所有*/@GetMapping("/selectAll")public List<Product> selectAll() {return productService.selectAll();}/*** 添加*/@GetMapping("/addProduct")public Boolean addProduct() {Product product = new Product();product.setProductName("我是产品!!!");product.setBigData("我是产品!fdgfjgjkbdshjfgldfnkknsfbndsknfdknsfhjdsm xzmn,hjzm cnbzgjcnqwklguasknfnasgud abjasjgdsal;kdiofgsfhdisufjs,bjbvm,kaskkn!!");product.setCreateTime(new Date());product.setBigData(JSONObject.valueToString(product));return productService.addProduct(product);}/*** 批量添加  有问题*/@GetMapping("/batchAdd")public Boolean batchAdd() {List<Product> products = new ArrayList<>();for (int i=0;i<=10;i++){Product product = new Product();product.setProductName("dsgdsg"+i+"放假时间!!!");products.add(product);}return productService.batchAdd(products);}/*** 查询单条*/@GetMapping("/getProductById")public Product getProductById() {return productService.getProductById(34);}/*** 查询目标数据*/@GetMapping("/getTargetProduct")public List<Product> getTargetProduct() {List<Integer> integers = Arrays.asList(23, 34, 5, 6, 7);return productService.getTargetProduct(integers);}/*** 条件查询数据*/@GetMapping("/findProduct")public List<Product> findProduct(String name) {return productService.findProduct(name);}/*** 分页查询*/@GetMapping("/productPage")public IPage<Product> productPage(Page page, String name) {return productService.productPage(page,name);}/*** 删除单条*/@GetMapping("/delById")public Boolean delById(Integer id) {return productService.delById(id);}/*** 批量删除*/@GetMapping("/batchDelById")public Boolean batchDelById(String ids) {List<String> strings = Arrays.asList(ids.split(","));return productService.batchDelById(strings);}//====增删改查 分页查询条件查询/*** 更新单条*/@GetMapping("/updateProduct")public Boolean updateProduct(Integer id,String name) {Product product = new Product();product.setId(id);product.setProductName(name);return productService.updateProduct(product);}/*** 批量更新*/@GetMapping("/batchUpdateProduct")public Boolean batchUpdateProduct() {List<Product> products = new ArrayList<>();Product product = new Product();product.setId(4);product.setProductName("dsjfds看难顶你是");Product product2 = new Product();product2.setId(5);product2.setProductName("大飞冠的返回");products.add(product);products.add(product2);return productService.batchUpdateProduct(products);}
}

public interface ProductService extends IService<Product> {List<Product> selectAll();Boolean addProduct(Product product);Boolean batchAdd(List<Product> products);Product getProductById(Integer i);List<Product> getTargetProduct(List<Integer> integers);List<Product> findProduct(String name);IPage<Product> productPage(Page page, String name);Boolean delById(Integer id);Boolean batchDelById(List<String> strings);Boolean updateProduct(Product product);Boolean batchUpdateProduct(List<Product> products);
}
@Service
@Slf4j
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {@Autowiredprivate ProductMapper productMapper;@Overridepublic List<Product> selectAll() {return productMapper.selectList(Wrappers.lambdaQuery());}@Overridepublic Boolean addProduct(Product product) {boolean save = save(product);log.info("current id====>"+product.getId());return save;}@Overridepublic Boolean batchAdd(List<Product> products) {boolean b = false;for (Product product : products) {b = save(product);log.info("current id====>"+product.getId());}return b;}@Overridepublic Product getProductById(Integer i) {return getById(i);}@Overridepublic List<Product> getTargetProduct(List<Integer> integers) {List<Product> products = list(Wrappers.<Product>lambdaQuery().in(Product::getId,integers));return products;}@Overridepublic List<Product> findProduct(String name) {List<Product> products = list(Wrappers.<Product>lambdaQuery().like(Strings.isNotBlank(name), Product::getProductName, name));return products;}@Overridepublic IPage<Product> productPage(Page page,String name) {IPage pageList = page(page, Wrappers.<Product>lambdaQuery().like(Strings.isNotBlank(name), Product::getProductName, name));return pageList;}@Overridepublic Boolean delById(Integer id) {return removeById(id);}@Overridepublic Boolean batchDelById(List<String> strings) {return removeByIds(strings);}@Overridepublic Boolean updateProduct(Product product) {return updateById(product);}@Overridepublic Boolean batchUpdateProduct(List<Product> products) {return updateBatchById(products);}}
@Mapper
public interface ProductMapper extends BaseMapper<Product> {}

七丶测试

八丶采坑,使用mybatis-plus批量插入保存报错

解决办法:当前程序使用DmJdbc驱动包版本比较旧(8.1.1.49),更换为较新版本(2021年下半年以后的驱动包版本)解决。

结尾:喜欢的朋友点个赞加收藏吧谢谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elementui el-tooltip文字提示组件弹出层内容格式换行处理

1、第一种 1.1 效果图 1.2、代码 <template><div class"wrapper"><el-tooltip class"content" effect"dark" placement"top"><div slot"content"><div v-html"getTextBrStr(text)"&…

ai虚拟主播自动切换的实现

前段时间,看到b站突然冒出很多ai主播,输入数字切换小姐姐.感觉挺有趣.思考了以下决定手动实现一下. 然后就陷入长达5天的踩坑中 由于是自建的webrtc服务器,很自然的想直接收流转发,这也是最优的方案, 然而实际上遇到许多不是很友好的bug, 然后再想使用rtp转发,依然不理想. 最后…

【第十二节】C++控制台版本贪吃蛇小游戏

目录 一、游戏简介 1.1 游戏概述 1.2 实现功能 1.3 开发环境 二、实现设计 2.1 C类的设计 2.2 项目结构 2.3 代码设计 三、程序运行截图 3.1 游戏界面 3.2 自定义地图 3.3 常规游戏界面 一、游戏简介 1.1 游戏概述 本游戏是一款基于C语言开发的控制台版本贪吃蛇游…

Python中的魔法函数

大家好&#xff0c;Python作为一种高级编程语言&#xff0c;以其简洁、优雅和易读性而闻名。然而&#xff0c;Python的强大之处不仅仅在于其语法的简洁性&#xff0c;还在于其灵活的面向对象编程范式。在Python中&#xff0c;有一类特殊的方法被称为“魔法函数”&#xff0c;它…

神器!!Python热重载调试【送源码】

在 Python 开发的路上&#xff0c;调试是我们不可避免的一环。 而今天推荐的开源项目Reloadium &#xff0c;让你在不重启程序的情况下实现代码的即时更新和调试。 &#x1f504; Reloadium 功能亮点&#xff1a; 1. 热重载魔法&#xff1a; Reloadium 不仅仅能够实现代码的…

电脑缺失msvcp120.dll要如何解决,学会这七个方法,轻松摆脱困扰

msvcp120.dll 是 Microsoft Visual C 2013 运行时库的一部分&#xff0c;它提供了 C 标准库的实现&#xff0c;使得开发者能够利用丰富的 C 功能来构建复杂的应用程序。这个文件对于使用了 C 标准库的应用程序来说是必不可少的。当这些应用程序运行时&#xff0c;它们会动态链接…

Docker管理工具Portainer忘记admin登录密码

停止Portainer容器 docker stop portainer找到portainer容器挂载信息 docker inspect portainer找到目录挂载信息 重置密码 docker run --rm -v /var/lib/docker/volumes/portainer_data/_data:/data portainer/helper-reset-password生成新的admin密码&#xff0c;使用新密…

Ubuntu安装GCC编译器

GCC编译器安装 GCC编译器安装切换软件源(换成国内的服务器)1 、创建一个文本文档并命名为“sources.list”2 、复制软件源列表清华源:阿里源:3 、把修改之后的.list 文件覆盖原有的文件4 、更新软件列表5 、安装6 、检查是否安装成功7、GCC 编译器:GCC编译器安装 这里演示…

cdo | 常用命令

整理一下平时经常会使用的cdo命令 如何来更改netcdf数据中的变量名呢&#xff1f; 假设我现在有一个sst月平均数据,希望将里面的变量名称sst修改为sst_new netcdf oisst_monthly { dimensions:lat 180 ;lon 360 ;time UNLIMITED ; // (476 currently)nbnds 2 ; variable…

【PTA】7-4 朋友圈(C++ * 并查集思想)代码实现 一点反思

题目如下&#xff1a; AC代码如下&#xff08;参考PTA 7-2 朋友圈&#xff08;25 分&#xff09;_处理微信消息pta-CSDN博客&#xff09; #include<bits/stdc.h> using namespace std; #define sz 30005 typedef struct node{int rk, fa; }Node; Node tree[sz]; void In…

STL:copy简介

STL:copy STL算法&#xff1a;copy std::copy()函数使用 std::copy 函数在 中声明&#xff0c;属于变易算法(Modifying sequence operations)&#xff0c;主要用于实现序列数据的复制 template <class InputIterator, class OutputIterator>OutputIterator copy (InputI…

【SQL学习进阶】从入门到高级应用(九)

文章目录 子查询什么是子查询where后面使用子查询from后面使用子查询select后面使用子查询exists、not existsin和exists区别 union&union alllimit &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f495;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面…

【IB Protocal Serial--WQE】

IB Protocal Serial--WQE 1 Intro1.1 What1.2 IBA WQE 本系列文章介绍RDMA技术的具体实现–InfiniBand Protocal&#xff1b; Introduce the features, capalities,components, and elements of IBA. the principles of operation. 1 Intro 1.1 What 理解IB协议下面这三句话对…

CSS--学习

CSS 1简介 1.1定义 层叠样式表 (Cascading Style Sheets&#xff0c;缩写为 CSS&#xff09;&#xff0c;是一种 样式表 语言&#xff0c;用来描述 HTML 文档的呈现&#xff08;美化内容&#xff09;。 1.2 特性 继承性 子级默认继承父级的文字控制属性。层叠性 相同的属性…

基于RFID技术的烟草在线监测系统在烟草仓库温湿度监测中的应用。

在现代工业生产中&#xff0c;精准高效的在线监测系统对于产品质量控制至关重要。尤其是在高价值且对环境敏感的产品制造过程中&#xff0c;如烟草加工&#xff0c;实时准确的数据采集与分析直接关系到最终产品的品质及安全标准达标程度。 烟草行业在我国属于传统轻工业之一&am…

Vite项目构建chrome extension,实现多入口

本项目使用Vite5 Vue3进行构建。 要使用vite工程构建浏览器插件&#xff0c;无非就是要实现popup页面和options页面。这就需要在项目中用到多入口打包&#xff08;生成多个html文件&#xff09;。 实现思路&#xff1a; 通过配置vite工程&#xff0c;使得项目打包后有两个h…

Spring中的Aware接口

Spring中的Aware接口 Aware接口介绍 Aware是Spring中的接口&#xff0c;它的作用是可以让Bean获取到运行环境的相关信息。比如获取到上下文、Bean在容器中的名称等。 Spring中提供了很多Aware接口的子类&#xff0c;具体如下&#xff1a; 常用接口的作用如下&#xff1a; …

【网络原理】HTTP|认识请求“报头“|Host|Content-Length|Content-Type|UA|Referer|Cookie

目录 认识请求"报头"(header) Host Content-Length Content-Type User-Agent(简称UA) Referer &#x1f4a1;Cookie&#xff08;最重要的一个header&#xff0c;开发&面试高频问题&#xff09; 1.Cookie是啥&#xff1f; 2.Cookie怎么存的&#xff1f; …

视频汇聚EasyCVR视频监控云平台对接GA/T 1400视图库对象和对象集合XMLSchema描述

GA/T 1400协议主要应用于公安系统的视频图像信息应用系统&#xff0c;如警务综合平台、治安防控系统、交通管理系统等。在城市的治安监控、交通管理、案件侦查等方面&#xff0c;GA/T 1400协议都发挥着重要作用。 以视频汇聚EasyCVR视频监控资源管理平台为例&#xff0c;该平台…

游戏逆向工具分析及解决方案

游戏逆向&#xff0c;是指通过各类工具对游戏进行反编译及源码分析&#xff0c;尝试分析游戏的实现逻辑的过程。这个过程需要使用解密、反编译、解压缩等技术&#xff0c;目的是还原或分析出游戏的代码逻辑及资源。 游戏逆向工具可以按照不同功能进行划分&#xff0c;如&#…