Spingboot + MybatisPlus连接达梦数据库(DM8)
Spingboot + MybatisPlus连接达梦数据库(DM8)
安装达梦数据库(windows操作系统)
打开.iso文件

打开setup安装程序

开始一直点下一步

如果没有Key文件可以不指定直接下一步。
选完路径等信息点击安装。


此时(下图)如果没有勾选【初始化数据库】后面就要使用【DM数据库配置助手】初始化一个数据库实例。

然后点击开始,查看安装完成的达梦数据库:

如果刚才没有勾选【初始化数据库】此时点击【DM数据库配置助手】初始化一个数据库实例(一直点下一步即可)。








完成后再点击取消按钮关闭数据库配置工具。
如果想要将其他数据库比如MySQL的数据库迁移到达梦数据库中,就使用DM数据迁移工具。
通常使用DM管理工具去对数据库进行管理。
Java 项目连接达梦数据库
使用【DM管理工具】创建一个模式:DATA_MANAGER,这个就是数据库名。**在达梦数据库中不论是数据库名、数据表名、还是字段名,最好一律都用大写字母。**因为达梦数据库的jdbc可以自动将实体类的字段转换成大写字母的,如果达梦数据库中有的表名或字段名存在小写字母就有可能会出bug(亲身经历!)。
添加依赖,我是在https://mvnrepository.com/官方仓库中搜索DmJdbcDriver,我用的是maven构建项目,直接将xml内容粘贴到项目的pom.xml中,更新依赖。
这里需要注意用8.1.3.140的版本,我先用了一个最早版本的,发现会有报错,太早的版本对于java项目的驼峰命名法识别有问题,无法识别为数据库表,会报错无效的模式名(其实就是数据库名)。
<!-- 达梦数据库jdbc -->
<!-- https://mvnrepository.com/artifact/com.dameng/DmJdbcDriver18 -->
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.3.140</version>
</dependency>
可以看到更新完依赖,就已经将该依赖下载到本地仓库了。

配置项目的applicaiton.yml:
#数据库配置
server:
servlet:
context-path: /xxx
spring:
application:
name: sanyuan
datasource:
# 达梦数据库 dm8 测试
driver-class-name: ${db.driver}
url: ${db.url}
username: ${db.username}
password: ${db.password}
profiles:
active: dev
application-dev.yml:
# 开发环境
server:
port: 8088
host: localhost
db:
host: localhost
# 达梦数据库 dm8
port: 5236
dbName: DATA_MANAGER
username: SYSDBA
password: 123456789
driver: dm.jdbc.driver.DmDriver
url: jdbc:dm://${db.host}:${db.port}/${db.dbName}
模式名为DATA_MANAGER,这个是我们要连接的数据库。写好配置文件后,开始写Pojo、Controller、Service、ServiceImpl、Mapper。
下面是以一个管理设备的数据管理系统为例,写的一个实体的分页查询。
Equipment.java
@Data
@TableName("EQUIPMENT")
public class Equipment {
@ApiModelProperty(value = "id")
private String id;
@NotNull
@ApiModelProperty(value = "设备名称", required = true)
private String name;
@ApiModelProperty(value = "介绍")
private String introduction;
@ApiModelProperty(value = "修改时间", required = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date modifyTime;
@TableField(exist = false)
private Integer dataSize;
}
EquipmentMapper.java
@Mapper
public interface ExperimentMapper extends BaseMapper<Experiment> {
}
EquipmentService.java
public interface EquipmentService extends IService<Equipment> {
}
EquipmentServiceImpl.java
@Service
public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper,Equipment> implements EquipmentService
{
}
EquipmentController.java
@RestController
@Api(tags = "equipment接口")
@RequestMapping("/equipment")
public class EquipmentController {
@Autowired
private EquipmentService equipmentService;
// 获取所有装备数据
@RequestMapping(value = "/selectByPage", method = RequestMethod.POST)
@ApiOperation("分页获取所有数据")
@ResponseBody
public Result getAllEquipment(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size) {
Page<Equipment> queryPage = new Page<>(page,size);
Page<Equipment> resultPage = equipmentService.page(queryPage); // mybatis-plus已经写好的方法
List<Equipment> res = resultPage.getRecords();
res.sort(Comparator.comparing(Equipment::getModifyTime).reversed());
return !res.isEmpty() ? ResponseData.success(res) : ResponseData.error();
}
}
现在可以调用/selectByPage接口分页查询所有数据了~
更多推荐
所有评论(0)