Spring Boot+Mybatis+DM数据库

打印 上一主题 下一主题

主题 1044|帖子 1044|积分 3132

达梦数据库(DM Database)是武汉达梦数据库股份有限公司研发的新一代大型通用关系型国产数据库,全面支持 SQL 标准和主流编程语言接口/开辟框架。行列融合存储技术,在兼顾 OLAP 和 OLTP 的同时,满足 HTAP 肴杂应用场景。

在公司项目开辟过程中,项目要求利用dm数据库,在用spring boot集成mytatis+dm数据库时,遇到了一些题目,现将成功的示例分享给大家,望大家少走一些弯路。
示例包架构如下图所示

   controller:示例接口
  db:实体
  mapper:数据库交互接口
  DmDemoApp:项目启动类
  maven引入相关jar包

  1. <dependencies>
  2.     <!-- 引入 springboot start -->
  3.     <dependency>
  4.         <groupId>org.springframework.boot</groupId>
  5.         <artifactId>spring-boot-starter</artifactId>
  6.     </dependency>
  7.     <!-- 引入web支持 -->
  8.     <dependency>
  9.         <groupId>org.springframework.boot</groupId>
  10.         <artifactId>spring-boot-starter-web</artifactId>
  11.     </dependency>
  12.     <!--  添加dm8 jdbc jar 包依赖-->
  13.     <dependency>
  14.         <groupId>com.dameng</groupId>
  15.         <artifactId>DmJdbcDriver18</artifactId>
  16.         <version>8.1.2.141</version>
  17.     </dependency>
  18.     <!--  引入阿里druid工具 包依赖-->
  19.     <dependency>
  20.         <groupId>com.alibaba</groupId>
  21.         <artifactId>druid-spring-boot-starter</artifactId>
  22.         <version>1.2.6</version>
  23.     </dependency>
  24.     <!--  引入lombok工具 包依赖-->
  25.     <dependency>
  26.         <groupId>org.projectlombok</groupId>
  27.         <artifactId>lombok</artifactId>
  28.         <version>1.18.6</version>
  29.     </dependency>
  30.     <!-- mybatis-plus的依赖 -->
  31.     <dependency>
  32.         <groupId>com.baomidou</groupId>
  33.         <artifactId>mybatis-plus-boot-starter</artifactId>
  34.         <version>3.5.2</version>
  35.     </dependency>
  36. </dependencies>
复制代码
设置下数据库配置信息

  1. server:
  2.   port: 8080
  3.   servlet:
  4.     context-path: /
  5. spring:
  6.   datasource:
  7.     type: com.alibaba.druid.pool.DruidDataSource
  8.     driver-class-name: dm.jdbc.driver.DmDriver
  9.     url: jdbc:dm://172.16.3.90:5236/
  10.     username: SYSDBA
  11.     password: SYSDBA
  12.     druid:
  13.       validation-query: select 1
  14.       test-on-borrow: false
复制代码
  请根据自己部署的dm数据库实际环境,调整数据库连接的相关配置,如url、username、password
   示例代码详解



  • 实体
  1. @TableName("THC.ALARM_STRATEGY")
  2. @Data
  3. public class AlarmStrategy {
  4.     @TableId(value = "ID", type = IdType.AUTO)
  5.     private Integer id;
  6.     private String strategyName;
  7.     private String alarmType;
  8.     private String alarmKeyword;
  9.     private String keywordType;
  10.     private String alarmStartTime;
  11.     private String alarmEndTime;
  12.     private Date createTime;
  13.     private Date updateTime;
  14. }
复制代码
  需要注意@TableName赋值的题目,在表名的前面加上schema;其次是id自增,需要建表时将id设置为“ID INT IDENTITY(1,1) NOT NULL”。
  

  •  数据库交互接口
  1. @Mapper
  2. public interface AlarmStrategyMapper extends BaseMapper<AlarmStrategy> {
  3. }
复制代码


  • 示例接口
  1. @RequestMapping("/strategy")
  2. @RestController
  3. public class DbController {
  4.         @Autowired
  5.         private AlarmStrategyMapper alarmStrategyMapper;
  6.         @PostMapping(value = "/list")
  7.         public List<AlarmStrategy> listAlarmStrategy() {
  8.                 return alarmStrategyMapper.selectList(null);
  9.         }
  10.         @PostMapping(value = "/add")
  11.         public String addAlarmStrategy() {
  12.                 AlarmStrategy alarmStrategy = new AlarmStrategy();
  13.                 alarmStrategy.setStrategyName("测试策略1");
  14.                 alarmStrategy.setCreateTime(new Date());
  15.                 alarmStrategy.setUpdateTime(new Date());
  16.                 alarmStrategyMapper.insert(alarmStrategy);
  17.                 return "ok";
  18.         }
  19. }
复制代码


  • 建表语句
  1. CREATE TABLE THC.ALARM_STRATEGY (
  2.         ID INT IDENTITY(1,1) NOT NULL,
  3.         STRATEGY_NAME VARCHAR(100) NULL,
  4.         ALARM_TYPE VARCHAR(100) NULL,
  5.         ALARM_KEYWORD VARCHAR(100) NULL,
  6.         KEYWORD_TYPE VARCHAR(100) NULL,
  7.         ALARM_START_TIME VARCHAR(100) NULL,
  8.         ALARM_END_TIME VARCHAR(100) NULL,
  9.         CREATE_TIME VARCHAR(100) NULL,
  10.         UPDATE_TIME VARCHAR(100) NULL
  11. );
复制代码
  需要注意schema名称,这里利用的时THC。
   最后将整个示例提供给大家参考。
如果对你有所帮助,请点赞支持一下。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表