首页 > 其他分享 >达梦

达梦

时间:2023-08-01 18:14:01浏览次数:34  
标签:DM NewBook models 数据库 安装 达梦 dmPython

目录

达梦

达梦和navicat:
"DM管理工具"和"Navicat"都是数据库管理工具,功能类似,用于管理和操作数据库,包括连接数据库、执行SQL查询、查看和管理数据库对象、数据导入导出等。

"DM管理工具"是由达梦官方提供的管理工具,专门用于管理达梦数据库。而"Navicat"是一家独立软件开发商提供的,它支持多种数据库产品,包括但不限于MySQL、PostgreSQL、SQL Server、Oracle等。

如果你使用的是达梦数据库,"DM管理工具"可能提供更好的对达梦数据库的支持和优化。如果你还需要连接和管理其他类型的数据库,"Navicat"可能会更适合,因为它支持多种数据库产品。


版本区别

  • DM Standard Edition 标准版

政府部门、中小型企业及互联网/内部网应用提供;

  • DM Enterprise Edition 企业版

为高端应用提供了数据复制、数据守护等高可靠性、高性能的数据管理能力,完全能够支撑各类企业应用;

  • DM Security Edition 安全版

拥有企业版的所有功能,并重点加强了其安全特性,引入强制访问控制功能;

采用数据库管理员 (DBA)、数据库审计员 (AUDITOR)、数据库安全员 (SSO)、数据库对象操作员 (DBO) 四权分立安全机制;

适合于对安全性要求更高的政府或企业敏感部门选用;

对比项 标准版 企业版 安全版
最大连接数 25 无限制
使用时间 无限制 无限制
最大存储容量 500 GB 无限制
存储过程调试功能 不支持 支持 支持
XML 支持 不支持 支持 支持
JSON 支持 不支持 支持 支持

数据库安装

下载地址:产品下载 | 达梦数据库 (dameng.com)

执行exe如下:

image-20230801103420216

按默认步骤进行如下:

image-20230801103942747

随后进入配置及初始化环节,现以DAMENG_test_0801为测试用数据库名,以DMSERVER_test_0801为测试用实例名;

然后选择默认配置,默认口令与登录名一致,如下图:

image-20230801104659793

作为测试环境,我创建了安装引导里到这里自带的 示例库 BOOKSHOPDMHR,点击完成即可

这里重新把数据库名和实例名改回了默认,因为自定义test的话此处出现证书类报错

image-20230801105111271

数据库工具介绍

服务查看器工具

在安装目录下的D:\Install\DMdatabase\tool内找到dmservice.exe执行,或直接在开始菜单找到,可以开始启动或暂停服务:

image-20230801105647827

其查看器页面如图:可以进行开库关库的操作

image-20230801105906932
管理工具

数据库实例链接

  • 新建连接

创建连接数据库的对象导航,不进行保存,下次开启后需重新连接。

  • 注册连接

创建连接数据库的对象导航,进行保存,下次开启后对象导航存在,可直接进行连接。

下面分别看二者:

image-20230801110116069
新建

点击【新建连接】,输入主机名(IP 地址)、端口(默认 5236)、用户名(默认 SYSDBA)、密码(默认 SYSDBA);

点击【确认】会直接进行数据库连接;

新建操作图示:

image-20230801111116918
注册

输入主机名(IP 地址)、端口(默认 5236)、用户名(默认 SYSDBA)、密码(默认 SYSDBA);

点击【测试】,测试是否连通;

点击【确定】,会连接数据库;

注册操作图如下:

image-20230801110810862

上述完成后,窗口的基本功能如下:

image-20230801111229541



数据库基本操作

创建表空间
表的创建和定义

登录 DM 管理工具,右键表空间模块,点击【新建表空间】,

image-20230801112633623
表的修改

根据项目需要,修改表空间文件、路径、大小、是否自动扩充、扩充上限等信息

表的加密
image-20230801113727560
创建用户
image-20230801114218076
创建数据库对象

此部分未实践



应用程序开发

以下介绍在 Python 开发的时候,如何使用 Python 快速连接达梦数据库

dmPython

dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。使用 Python 连接达梦数据库时需要安装 dmPython


Win下编译和安装 dmPython
安装 DM 数据库软件
设置 DM_HOME 环境变量

dmPython 源码依赖 DM 安装目录中提供的 include 头文件,编译安装前需要检查是否安装 DM 数据库软件(前文已安装),并设置 DM_HOME 环境变量(一般已经默认):

image-20230801115139642
安装编译工具 Microsoft Visual C++ Build Tools

Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)网页中,下载此处的:

image-20230801122059606 image-20230801150306114

安装过程较慢,但必须等待此步全部安装后方可进行下一步,不然在命令提示符内安装python setup.py install时会报错error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

此应用安装好后,选择【启动】以确保电脑上现在具备环境:

image-20230801151542072
编译安装dmpython

安装路径下的 drivers 目录下,找到 dmPython 的驱动源码,我的是在D:\Install\DMdatabase\drivers\python\dmPython

进入到 dmPython 驱动源码目录

cd D:\Install\DMdatabase\drivers\python\dmPython

编译安装 dmPython

python setup.py install
image-20230801151055436 image-20230801151125258

编译安装结束后使用 pip list 命令查看是否安装成功

image-20230801151201956

我的命令提示符内(最新版本应该如下):

image-20230801151637242
查看搜索路径

dmPython 通过调用 DM DPI 接口完成 Python 模块扩展,在其使用过程中,除 Python标准库以外,还需要 DPI 的运行环境

进入 python 解释器查看搜索路径:

python
import sys
sys.path
image-20230801151904665

只需关心方框内最后一个路径D:\\Install\\PYTHON\\Lib\\site-packages\\dmpython-2.4.8-py3.11-win-amd64.egg

将 dpi 目录文件拷贝到路径下

操作如图示

image-20230801152718405

编写测试代码
import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server= '192.168.201.118',port=5236)
cursor = conn.cursor()
cursor.execute('select username from dba_users')
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()

输出数据库中的用户名则表示连接数据库成功:

image-20230801154613595

django框架下的应用开发实例
驱动源码

安装完 DM 数据库软件后,在安装路径下的 drivers 目录下的 python 目录中,可以找到 dmPython 和 Django_dmPython 的驱动源码,由于提供的是源码,需要找到对应版本自行编译安装

image-20230801164716143

编译安装与 django 版本对应的 Django_dmPython,驱动源码与 django 源码的版本对应关系,例如 django317,能适配 django3.1.x 所有版本。

djangoxxx/django_dmPython 下执行命令:python setup.py install

安装django

(使用pip list看是否成功)

新建项目

PyCharm 新建项目 dm_django0801,终端执行:

django-admin startproject mysite

创建一个 mysite 目录,

cd mysite 
python manage.py startapp dm

创建一个 dm 目录

视图

编辑 dm/views.py 文件:

from django.http import HttpResponse 

def index(request):    
	return HttpResponse("Hello, 达梦数据库。 ")
路由

在 dm 目录里新建 urls.py 文件

from . import views
from django.urls import path
urlpatterns = [
    path('', views.index, name='index'),
]

在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include()。

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('dm/', include('dm.urls')),
    path('admin/', admin.site.urls),
]

启动 Django 自带的简易服务器,验证是否正常工作

在 PyCharm 中打开 Terminal 执行:

python manage.py runserver

浏览器访问 http://127.0.0.1:8000/dm/

image-20230801165425720
数据库配置

编辑 mysite/settings.py 配置文件。

设置时区:

TIME_ZONE='Asia/Shanghai'
USE_TZ=False

设置 DATABASES 设置项:


DATABASES = {
    'default': {
        'ENGINE': 'django_dmPython',  #使用的数据库后端
        'NAME': 'DAMENG',
        'USER': 'SYSDBA',
        'PASSWORD': 'SYSDBA',
        'HOST': '192.168.201.118',
        'PORT': '5236',
        'OPTIONS': {'local_code': 1, 'connection_timeout': 5}
    }
}
模型

编辑 dm/models.py 文件。

class Book(models.Model):
    class Meta:
        db_table = 'PRODUCT'
    PRODUCTID = models.AutoField(primary_key=True,  db_column='PRODUCTID')
    NAME = models.CharField(max_length=100, null=True)
    AUTHOR = models.CharField(max_length=25, null=True)
    PUBLISHER = models.CharField(max_length=50, null=True)
    PUBLISHTIME = models.DateField(null=True)
    PRODUCTNO = models.CharField(max_length=25, null=True)
    SATETYSTOCKLEVEL = models.IntegerField(null=True)
    ORIGINALPRICE = models.DecimalField(max_digits=5, decimal_places=2, null=True)
    NOWPRICE = models.DecimalField(max_digits=10, decimal_places=4, null=True)
    DISCOUNT = models.DecimalField(max_digits=2, decimal_places=1, null=True)
    DESCRIPTION = models.TextField(null=True)
    TYPE = models.CharField(max_length=5, null=True)
    PAPERTOTAL = models.IntegerField(null=True)
    WORDTOTAL = models.IntegerField(null=True)
    SELLSTARTTIME = models.DateField(null=True)
SELLENDTIME = models.DateField( null=True)

把 dm 应用安装到 Django 项目里

在 Django 项目中包 dm 应用,需要在配置类 INSTALLED_APPS 中添加设置。

'dm.apps.DmConfig',
image-20230801165611557
迁移
python manage.py makemigrations dm

其他基本操作
service.py

dm 目录里新建一个 services.py 文件,以实现增、删、改、查四个基本操作。

from .models import Book
  • 查询操作
def fun_get_books():
    books = Book.objects.all() #返回QuerySet
    total_rows=books.count()
    print('查询到'+str(total_rows)+'条记录')
    for book in books:
        print(book.NAME, book.AUTHOR, book.PUBLISHER)
    print('')
  • 增加操作
def fun_insert_book():
    NewBook = Book()
    NewBook.NAME = '水浒传'
    NewBook.AUTHOR = '施耐庵,罗贯中'
    NewBook.PUBLISHER = '中华书局'
    NewBook.PUBLISHTIME = '2005-4-1'
    NewBook.PRODUCTNO = '9787101046137'
    NewBook.SATETYSTOCKLEVEL = '10'
    NewBook.ORIGINALPRICE = '19'
    NewBook.NOWPRICE = '14.3'
    NewBook.DISCOUNT = '7.5'
    NewBook.DESCRIPTION = '''
            《水浒传》是宋江起义故事在民间长期流传基础上产生出来的,吸收了民间文学的营养。
            《水浒传》是我国人民最喜爱的古典长篇白话小说之一。它产生于明代,是在宋、元以来有关水浒的故事、话本、戏曲的基础上,由作者加工整理、创作而成的。
            全书以宋江领导的农民起义为主要题材,艺术地再现了中国古代人民反抗压迫、英勇斗争的悲壮画卷。
            作品充分暴露了封建统治阶级的腐朽和残暴,揭露了当时尖锐对立的社会矛盾和“官逼民反”的残酷现实,成功地塑造了鲁智深、李逵、武松、林冲、阮小七等一批英雄人物。
            小说故事情节曲折,语言生动,人物性格鲜明,具有高度的艺术成就。但作品歌颂、美化宋江,鼓吹“忠义”和“替天行道”,表现出严重的思想局限。
        '''
    NewBook.PHOTO = ''
    NewBook.TYPE = '16'
    NewBook.PAPERTOTAL = '922'
    NewBook.WORDTOTAL = '912000'
    NewBook.SELLSTARTTIME = '2006-03-20'
    NewBook.SELLENDTIME = '2021-07-12'

    NewBook.save()
    print('插入成功')
  • 更新操作
def fun_update_book():
    try:
        obj = Book.objects.get(PRODUCTID=1)  #返回结果有且只有一个
        obj.NAME='水浒'
        obj.save()
        print('更新成功')
    except Book.DoesNotExist:
        print('PRODUCTID=1的记录不存在,未更新任何数据')
  • 删除操作
def fun_delete_book():
    obj = Book.objects.filter(NAME='水浒') #返回QuerySet
    del_rows=obj.count()
    obj.delete()
print('删除'+str(del_rows)+'条记录')
dm视图

编辑 dm/views.py 文件。

from django.http import HttpResponse

from .services import fun_get_books
from .services import fun_insert_book
from .services import fun_update_book
from .services import fun_delete_book

def index(request):
    # 查询
    fun_get_books()

    # 增加
    fun_insert_book()
    fun_get_books()

    # 更新
    fun_update_book()
    fun_get_books()

    # 删除
    fun_delete_book()
    fun_get_books()

    return HttpResponse("执行结束,请到控制台查看输出结果。")
启动服务器运行

最后启动 Django 自带的简易服务器

image-20230801170047186

标签:DM,NewBook,models,数据库,安装,达梦,dmPython
From: https://www.cnblogs.com/yansz001216/p/17598674.html

相关文章

  • 达梦备份恢复技术分享
        随着IT科技的发展,数据逐渐成为社会和企业的核心资产,面对纷繁复杂的社会环境,供应链风险随时可能发生,国产化势在必行,DM数据库作为国产化数据库代表,正在行业中变得越来越流行,达梦作为国产数据库的佼佼者,深受传统行业和广大金融客户的喜爱。它有着40年深厚的技术沉淀,相信......
  • 使用JMeter连接达梦数据库的步骤和示例
    引言:本文将介绍如何使用JMeter连接达梦数据库,并提供连接达梦数据库的步骤和示例,帮助您快速开始进行数据库性能测试。步骤:1.下载并安装JMeter:首先,从JMeter官方网站下载并安装最新版本的JMeter。2.添加JDBC驱动:下载并添加达梦数据库的JDBC驱动jar文件到JMeter的lib目录下,例如`......
  • CentOS 7 安装达梦数据库
    环境说明CentOS的版本:CentOS7.92009达梦数据库的版本:达梦8SSH工具:MobaXterm(最新版本即可)初始化配置1、下载达梦安装包达梦数据库官网提供了开发版的下载包,我们下载对应版本即可。官网地址:https://eco.dameng.com/download/2、创建用户和组#创建组[root@localhost~]#groupad......
  • nacos适配达梦、瀚高、人大金仓数据库及部分源码探究
    一.插件实现1.插件目录结构2.pom依赖<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-datasource-plugin</artifactId><version>2.2.4</version></d......
  • DM8达梦数据库版本区别:开发版、标准版、企业版、安全版
    DM8达梦数据库版本区别:开发版、标准版、企业版、安全版达梦2021-01-196435根据不同的应用需求与配置,DM提供了多种不同的产品系列:DM开发版DM开发版是指用于业务场景开发时所用的数据库,除不支持数据库集群等企业级功能,开发版提供了完整的功能,支持TB级数据量,支......
  • 达梦split函数的实现,pipe row的用法
    本文转载自:https://www.yii666.com/article/516427.html 为了让PL/SQL函数返回数据的多个行,必须通过返回一个REFCURSOR或一个数据集合来完成。REFCURSOR的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化。达梦和Oracle9i通过引入的管道化......
  • MySQL迁移达梦数据库注意事项
    mysql<—>dmmysql迁移到dm报错【错误消息:不支持该数据类型】mysql迁移到dm报错【错误消息:不支持该数据类型】|达梦技术社区(dameng.com)更改迁移工具DM连接驱动.这个驱动地址在安装包里面有,相对路径为:/drivers/jdbc,可以挑选最新的驱动。不支持直接comment注释创建......
  • 达梦数据库&DBeaver
    DBeaver:https://dbeaver.io/download/达梦官网:https://eco.dameng.com/download/前提:数据库需要启动 链接步骤:1、打开DBeaver 2、数据库--->驱动管理器---->新建   3、新建数据库链接--->找到上面设置的驱动(可以搜索)4、输入链接需要的配置项     ......
  • 达梦实时主备搭建技术分享
    在部分工作场景下可能会使用到达梦数据库的数据守护功能,本文介绍达梦数据守护服务的搭建。此次搭建使用三台机器,一主一备一监视器。其中主备数据库需要提前初始化。一、数据准备需要保证主备库数据一直,这里使用dmrman脱机备份还原方式进行。停止主库,进行rman全备。./dmrmanCTL......
  • 麒麟V10操作系统安装达梦DM8常见问题分享
    一、麒麟V10关闭防火墙kylinV10系统或linux系统关闭启动防火墙开启防火墙并设置开机自启启动:systemctlstartfirewalld关闭:systemctlstopfirewalld查看状态:systemctlstatusfirewalld开机禁用:systemctldisablefirewalld开机启用:systemctlenablefirewalld二、......