Maven 依赖
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.2.192</version>
</dependency>
yml配置
datasource:
master:
url: jdbc:dm://192.168.211.113:30236
username: WEIQUE
password: WEIQUE888
driver-class-name: dm.jdbc.driver.DmDriver
1. URL中不带模式名的原因
在MySQL中,数据库URL通常包含数据库名,例如 jdbc:mysql://localhost:3306/your_database
,以便指定数据源直接连接到特定的数据库。达梦数据库的URL中不需要指定模式名,原因是达梦数据库的设计理念不同:
- 达梦8数据库不支持在URL中指定模式:在达梦数据库中,每个用户在创建时会自动拥有一个同名的模式,且所有操作都在该模式下进行。模式与用户强绑定,因此在连接数据库时只需指定用户名和密码即可连接到与用户同名的模式。这与MySQL不同,MySQL的用户权限是基于数据库配置的,而达梦是基于模式配置的。
- 自动匹配用户同名模式:达梦数据库在用户登录后,自动匹配该用户名下的同名模式进行操作。因此,用户登录后在自己的模式内可以直接访问表,而无需指定模式名。
2. 使用自定义用户名的原因
2.1. 避免频繁指定模式名
当使用自定义用户名时,用户自动与同名的模式绑定。这样,在进行SQL查询时,无需指定模式名.表名
,可以直接使用表名访问数据。这大大简化了SQL语句,使代码更简洁,特别是在大量查询操作中提升了开发效率。相比之下,如果使用默认用户(如SYSDBA
),就必须在每次查询时都指定模式名,操作起来相对繁琐。
2.2. 提供更好的数据隔离和权限控制
自定义用户名允许为每个用户创建独立的模式,这样数据和对象可以隔离管理,有效避免不同用户间的相互影响。这种隔离性与MySQL数据库中的“数据库”概念类似,但更具权限控制的灵活性。在达梦数据库中,不同用户拥有各自的模式和对象,默认情况下互不可见,从而增强了数据的安全性和私密性。
2.3. 提高数据存储管理灵活性
自定义用户在创建时,可以指定特定的表空间进行数据存储。这样,用户可以通过表空间管理实现性能优化和数据的物理隔离。相比之下,使用默认用户可能无法灵活指定和管理表空间,限制了数据管理的粒度。而通过为自定义用户指定表空间,数据存储不仅可以更高效,还可以为数据备份和恢复提供便利条件。