达梦数据库 ========================= 登录 ------------------------- .. code-block:: bash /opt/dmdbms/bin/disql disql V8 username:SYSDBA password: Server[LOCALHOST:5236]:mode is normal, state is open login used time : 3.298(ms) SQL> 创建表空间 ------------------------ 创建表空间 TEST, 指定数据库文件为 '/data/dmdata/DAMENG/TEST.DBF', 初始大小为 128M,打开自动扩展,每次自动扩展 100M ,扩展上限 10240M, 使用 RC4 加密算法。 使用命令行方式创建示例表空间如下: .. code-block:: bash SQL> create tablespace "CTBP" datafile '/opt/dmdbms/data/DAMENG/CTBP.DBF' size 128 autoextend on next 100 maxsize 10240 CACHE = NORMAL encrypt with RC4; executed successfully used time: 00:00:05.711. Execute id is 64601. 创建用户 ------------------------ 使用命令行方式创建用户 TEST ,密码 “Dameng@123”,使用散列算法 SHA512 ,使用存储加密密钥为 “123456”, 指定表空间为 TEST,索引表空间为 TEST,授予 “PUBLIC” 和 “SOI” 权限。示例参考如下: .. code-block:: sql create user "TEST" identified by "Dameng@123" hash with SHA512 salt encrypt by "123456" default tablespace "CTBP" default index tablespace "CTBP"; grant "PUBLIC","SOI" to "TEST"; -- 授予用户 DBA 权限 grant "DBA" to "TEST"; grant "RESOURCE" to "TEST"; 用户与模式的关系 ------------------------------ 每个用户有一个默认的同名的模式,访问自己模式下的表、视图等,不需要加模式名,访问其他模式下的对象需要拥有访问权限,访问时还需加上模式名。 查询当前用户模式下的表,无需加对象名 .. code-block:: sql select * from test 查询其他用户模式下的表,需要加对象名 .. code-block:: sql select * from DBTEST.TABLE_TEST; 创建数据库对象 ------------------------------- 参考:https://eco.dameng.com/document/dm/zh-cn/start/dm-create-objects.html .. code-block:: sql CREATE TABLE dmhr.city ( city_id CHAR(3) NOT NULL, city_name VARCHAR(40) NULL, region_id INT NULL ); 插入数据 ----------------------------- .. code-block:: sql INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('BJ','北京',1); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('SJZ','石家庄',1); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('SH','上海',2); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('NJ','南京',2); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('GZ','广州',3); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('HK','海口',3); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('WH','武汉',4); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('CS','长沙',4); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('SY','沈阳',5); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('XA','西安',6); INSERT INTO dmhr.city(city_id,city_name,region_id) VALUES('CD','成都',7); Java ------------------------------ 参考:https://eco.dameng.com/document/dm/zh-cn/pm/jdbc-rogramming-guide.html .. code-block:: xml com.dameng Dm8JdbcDriver18 8.1.1.193 system ${project.basedir}/src/main/resources/libraries/DmJdbcDriver18-8.1.1.193.jar .. note:: 可以在本地的安装目录 dmdbms8/drivers/jdbc 下找到对应的驱动包 DmJdbcDriver18.jar,复制到项目的lib目录,再加入到maven依赖中。 此处也可参照官方 jdbc 驱动手册 readme.txt 中的说明。readme.txt 存放在数据库安装目录下的 /drivers/ jdbc 目录下。 在 application.properties 配置连接信息如下: .. code-block:: properties # 数据库的连接配置 spring.datasource.url=jdbc:dm://localhost:5236?schema=xxx spring.datasource.username=SYSDBA spring.datasource.password=SYSDBA spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver .. tip:: jdbc url中使用schema可以指定登录用户使用的模式,如果不指定则使用用户的默认模式。 测试代码 .. code-block:: java package com.dm.dmspringbootdemo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class DbController { /** * 注入 jdbcTemplate 模板对象 */ @Autowired private JdbcTemplate jdbcTemplate; @GetMapping("/queryDbVersion") public List queryDbVersion() { return jdbcTemplate.queryForList( "SELECT banner as 版本信息 FROM v$version"); } }