20230718-达梦数据库无法OPEN

在这里插入图片描述

问题现象:

[dmdba@cjc-db-03 ~]$ disql SYSDBA/******:5238
Server[LOCALHOST:5238]:mode is primary, state is mount
login used time : 4.470(ms)
disql V8

执行OPEN:

SQL> alter database open;
alter database open;
[-720]:Error in line: 1
Dmwatcher is active, or current configuration(ALTER_MODE_STATUS) not allowed to alter database.
used time: 1.371(ms). Execute id is 0.

报错:

Dmwatcher is active, or current configuration(ALTER_MODE_STATUS) not allowed to alter database.

解决方案:

测试环境可以直接修改状态:

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL executed successfully
used time: 21.775(ms). Execute id is 0.

启动数据库:

SQL> alter database open;
alter database open;
[-516]:Error in line: 1
None normal mode open force needed.
used time: 1.845(ms). Execute id is 0.

force方式启动:

SQL> alter database open force;
executed successfully
used time: 239.480(ms). Execute id is 0.

###chenjuchao 20230718###
欢迎关注我的公众号《IT小Chen

### 使用 MyBatis-Plus-Generator 配置并生成达梦数据库代码 #### 1. Maven 或 Gradle 的依赖配置 为了使用 `MyBatis-Plus` 和其代码生成器功能,需先引入必要的依赖项。以下是基于 Maven 的依赖配置: ```xml <dependencies> <!-- MyBatis-Plus 核心 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3</version> </dependency> <!-- MyBatis-Plus 代码生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.3</version> </dependency> <!-- 达梦数据库驱动 --> <dependency> <groupId>dm</groupId> <artifactId>dmjdbc</artifactId> <version>7.0.0</version> </dependency> <!-- 模板引擎 Velocity (可选) --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency> </dependencies> ``` 以上配置包含了 `MyBatis-Plus` 核心库、代码生成器以及达梦数据库的 JDBC 驱动程序[^1]。 --- #### 2. 数据源配置 在代码生成过程中,数据源的正确配置至关重要。以下是一个完整的数据源配置示例: ```java // 创建数据源配置对象 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:dm://localhost:5236/your_database_name"); dsc.setDriverName("dm.jdbc.driver.DmDriver"); dsc.setUsername("your_username"); dsc.setPassword("your_password"); // 手动注入达梦查询器 dsc.setDbQuery(new DMQuery()); ``` 由于达梦数据库并非标准支持的数据库之一,因此需要通过设置 `setDbQuery(new DMQuery())` 来适配达梦数据库特有的 SQL 查询逻辑[^2]。 --- #### 3. 全局配置 全局配置用于定义生成代码的一些通用属性,例如作者名称、日期格式化等: ```java GlobalConfig gc = new GlobalConfig(); gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); // 输出目录 gc.setAuthor("Your Name"); // 作者名 gc.setOpen(false); // 是否打开文件夹 gc.setFileOverride(true); // 文件覆盖 gc.setDateType(GlobalConfig.DateType.TIME_PACK); ``` --- #### 4. 策略配置 策略配置决定了如何解析表结构以及生成哪些类型的代码文件: ```java StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); // 表名转换为驼峰命名法 strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 列名转换为驼峰命名法 strategy.setEntityLombokModel(true); // 开启 Lombok 注解 strategy.setRestControllerStyle(true); // REST 控制器风格 strategy.setInclude("table_1", "table_2"); // 设置要生成的表名列表 ``` --- #### 5. 模板引擎配置(可选) 如果希望自定义模板,则可以指定模板路径或切换模板引擎: ```java TemplateConfig templateConfig = new TemplateConfig(); templateConfig.setController("/templates/controller.java.vm"); // 自定义控制器模板 templateConfig.setService("/templates/service.java.vm"); // 自定义服务层模板 ``` 如果不做特殊定制,默认会使用内置模板。 --- #### 6. 初始化代码生成器 最后一步是初始化并启动代码生成器: ```java AutoGenerator mpg = new AutoGenerator(); mpg.setGlobalConfig(gc); // 全局配置 mpg.setDataSource(dsc); // 数据源配置 mpg.setStrategy(strategy); // 策略配置 mpg.setTemplate(templateConfig); // 模板配置 // 执行生成操作 mpg.execute(); ``` 执行完成后,目标代码将被生成至指定目录下。 --- ### 注意事项 - 如果遇到无法连接数据库的情况,请确认 URL 地址、用户名和密码是否正确。 - 若生成失败,可能是因为未手动注入 `DMQuery()` 导致不兼容问题[^2]。 - 对于复杂项目,建议调整模板以满足实际需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值