Python操作MySQL数据库详细案例
Python操作MySQL数据库详细案例
- 一、前言
- 二、数据准备
- 三、建立数据库
- 四、处理和上传数据
- 五、下载数据
- 六、完整项目数据和代码
一、前言
本文通过案例讲解如何使用Python操作MySQL数据库。具体任务为:假设你已经了解MySQL和知识图谱标注工具Brat,将Brat标注的结果上传到MySQL。
在知识图谱的文本标注任务中,需要将数据按照事先决定的标注规则进行人工标注。Brat是一种比较著名的标注工具,但是目前不支持Windows系统,你可以安装虚拟机使用该工具。本文已经完成了一项基于Windows、Python3.7的标注软件制作工作,你可以点击 实体关系文本标注工具 进行查看。
二、数据准备
本文从知网下载了一些关于医学文章的摘要,提前设置了标注规则,例如实体类别、关系等。通过Brat工具标注该文本数据并得到输出标注好的结果文件,该文件共有2042行,以T开头表示实体,以R开头表示关系,该文件是对网络图结构的文本表述。
三、建立数据库
在开始Python代码任务之前,你需要对数据库有基础的了解,比如你已经具备使用SQL语言操作MySQL数据库的能力。
1、将MySQL中的操作定义为python函数(基于MySQL80),那么就可以直接调用该函数,来操作数据库。
import pandas as pd
import pymysqlprint("1")def mycursor(db_name = 'mysql80'):connection = pymysql.connect(host='localhost',user='root',port = 3308,password='',#123456database= db_name,charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)cursor = connection.cursor()return cursor, connectiondef use(db_name):'''切换数据库,返回游标'''return mycursor(db_name)def create_database(db_name):'''新建数据库'''sql = f'create database if not exists {db_name};'cursor.execute(sql)def create_table(tbl_name):'''新建数据表'''sql = f'create table if not exists {tbl_name};'cursor.execute(sql) def drop_database(db_name):'''删除数据库'''sql = f'drop database if exists {db_name};'cursor.execute(sql)def drop_table(tbl_name):'''删除数据表'''sql = f'drop table if exists {tbl_name};'cursor.execute(sql)def query(sql):'''以数据框形式返回查询据结果'''cursor.execute(sql)data = cursor.fetchall() # 以元组形式返回查询数据header = [t[0] for t in cursor.description]df = pd.DataFrame(list(data), columns=header) # pd.DataFrem 对列表具有更好的兼容性# return dfprint(df)def show_databases():'''查看服务器上的所有数据库'''sql = 'show databases;'return query(sql)def select_database():'''查看当前数据库'''sql = 'select database();'return query(sql)def show_tables():'''查看当前数据库中所有的表'''sql = 'show tables;'return query(sql)
2、创建数据库
#选择需要使用的数据库,此前需要创建数据库cursor, db = use('mysql') #默认设置,不要更改!dbname = 'kgg' #此处更改为需要创建的数据库名
create_database(dbname)
cursor, db = use(dbname)
3、建立数据库中各表
# 建实体类表
sqltb1 = ''' create table entity(id int auto_increment primary key comment '实体类编号',name varchar(20) comment '实体类名'
) comment '实体类表';
'''
cursor.execute(sqltb1)# 插入数据
sqlin1 = '''insert into entity values (1, '病症'),(2, '病名'),(3, '诊断方案'),(4, '治疗方案'),(5, '药名'),(6, '其它');
'''
cursor.execute(sqlin1)
db.commit() #事务
# 检查是否传递成功
sqlset = "select * from entity ;"
query(sqlset)#-------------------------------------------------------------------------# 创建关系表格
sqltb2 = ''' create table relation(id int auto_increment primary key comment '关系编号',name varchar(20) comment '关系名'
) comment '关系表';
'''
cursor.execute(sqltb2)#插入数据
sqlin2 = '''insert into relation values (1, '包含'),(2, '治疗'),(3, '危险因素'),(4, '辅助诊断'),(5, '特征'),(6, '并发'),(7, '别名'),(8, '作用'),(9, '条件');'''cursor.execute(sqlin2)
db.commit() #事务
#检查是否传递成功
sqlset = "select * from relation ;"
query(sqlset)#-------------------------------------------------------------------------# 创建实体表
sqltb3 = ''' create table entitymin(id int auto_increment primary key comment '编号',name varchar(50) comment '实体名'
) comment '实体表';
'''
cursor.execute(sqltb3)
db.commit() #事务#-------------------------------------------------------------------------
4、建立一些交叉表
#建立 实体-关系库,并设置主键外键关联# 创建实体表
sqltb5 = ''' create table entityrela(id int auto_increment primary key comment '编号',headclass int comment '头实体类',headentity int comment '头实体',relation int comment '关系',tailentity int comment '尾实体',tailclass int comment '尾实体类'
) comment '实体和关系表';
'''
cursor.execute(sqltb5)
db.commit() #事务#-------------------------------------------------------------------------
#创建链接该表(子表、外键)与另外三张表(父表、主键)链接sqlkey = '''
alter table entityrela add constraint encl_he_en_id foreign key (headclass) references entity (id);
'''
cursor.execute(sqlkey)sqlkey = '''
alter table entityrela add constraint enla_he_enmin_id foreign key (headentity) references entitymin (id);
'''
cursor.execute(sqlkey)sqlkey = '''
alter table entityrela add constraint enla_re_re_id foreign key (relation) references relation (id);
'''
cursor.execute(sqlkey)sqlkey = '''
alter table entityrela add constraint enla_ta_enmin_id foreign key (tailentity) references entitymin (id);
'''
cursor.execute(sqlkey)sqlkey = '''
alter table entityrela add constraint enla_ta_en_id foreign key (tailclass) references entity (id);
'''
cursor.execute(sqlkey)
db.commit() #事务#-------------------------------------------------------------------------
5、查看创建情况
# 查看该库中所有表格、查看表是否创建成功
show_tables()#-------------------------------------------------------------------------
# end
6、此外,若你在任何操作过程中,需要清空数据库,你可以:
# # #格式化数据库,取消下面三行注释,运行后便清空数据库。
# drop_database(dbname)
# create_database(dbname)
# print('数据库格式化')
四、处理和上传数据
创建好数据库后,便可以对数据进行处理,并将数据上传到数据库中。
1、同上,连接数据库,并定义工具函数。
# 将数据添加到数据库(数据库已经提前建好)import pandas as pd
import pymysql
import redef mycursor(db_name = 'mysql80'):connection = pymysql.connect(host='localhost',user='root',password='',#123456port = 3308,database= db_name,charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)cursor = connection.cursor()return cursor, connectiondef use(db_name):'''切换数据库,返回游标'''return mycursor(db_name)def query(sql):'''以数据框形式返回查询据结果'''cursor.execute(sql)data = cursor.fetchall() # 以元组形式返回查询数据header = [t[0] for t in cursor.description]df = pd.DataFrame(list(data), columns=header) # pd.DataFrem 对列表具有更好的兼容性return df# print(df)def show_databases():'''查看服务器上的所有数据库'''sql = 'show databases;'return query(sql)def select_database():'''查看当前数据库'''sql = 'select database();'return query(sql)def show_tables():'''查看当前数据库中所有的表'''sql = 'show tables;'return query(sql)cursor, db = use('mysql') #默认设置,不要更改!
dbname = 'kgg'
cursor, db = use(dbname)#-------------------------------------
2、数据处理-实体
# 将ann文件数据传入(暂以txt格式传入)
txtfile = open(r'C:\Users\DELL\Desktop\mysql数据库\0001-0500.ann', 'r', encoding='utf-8').readlines()
# print(txtfile[:3])#将实体与关系数据分开
entity = []
relation = []
for i in txtfile:if i[0] == 'T':entity.append(i)else:relation.append(i)# print(relation)#将实体名称、类别与编号提取出来
entity = [i.strip('\n').split('\t') for i in entity]
entity = [[i[0],i[1].split(' ')[0], i[-1]] for i in entity]
# print(entity[:5])
3、上传实体表中数据
#-------------------------------------------------------------------------
#在实体表中插入数据
# #提取实体名,去重;需要提前查看数据库已有的实体名称 需要表名称
entitymin = [i[-1] for i in entity]
entitymin = list(set(entitymin))
# print(entitymin[:5])for q in entitymin:sqlq = "select name from entitymin where name = (%s);"TF = cursor.execute(sqlq, q)if TF == 0: #存在则为1,不存在为0;不存在则添加 sqlin2 = "insert into entitymin values (null, %s) ;"cursor.execute(sqlin2, q)
db.commit() #事务
# 查看数据效果
sqlq = "select * from entitymin;"
query(sqlq)
4、数据处理-5元组关系
)#-------------------------------------------------------------------------
#将三元组提取出来
relation = [re.split("[\tA:' ']",i) for i in relation]
relation = [[i[1],i[4],i[7]] for i in relation]
# print(relation[:5])dicen = dict([('病症',1),('病名',2),('诊断方案',3),('治疗方案',4),('药名',5),('其它',6)])
dicre = dict([('包含',1),('治疗',2),('危险因素',3),('辅助诊断',4),('特征',5),('并发',6),('别名',7),('作用',8),('条件',9)])
# print(dicre['包含'])# #将三元组中的实体编号替换成实体名称
for r in relation:r[0] = dicre[r[0]]for e in entity:if r[1] == e[0]:r[1] = e[-1]r.insert(0,e[1])if r[-1] == e[0]:r[-1] = e[-1]r.append(e[1])
# print(relation[:5])#编码化---['头实体类', '头实体','关系类','尾实体', '尾实体类']
enre = []
for j in relation:j[0] = dicen[j[0]]j[-1] = dicen[j[-1]]sqlchaen = "select id from entitymin where name = (%s);"cursor.execute(sqlchaen, j[2])j[2] = cursor.fetchone()['id']sqlchaen = "select id from entitymin where name = (%s);"cursor.execute(sqlchaen, j[3])j[3] = cursor.fetchone()['id']enre.append([j[0],j[2],j[1],j[3],j[4]])
print(enre[-5:]) #传入实体-关系库
5、上传5元组数据
#插入实体-关系库数据,并创建链接该表(子表、外键)与另外三张表(父表、主键)链接# #插入数据
for en in enre:sqlin2 = "insert into entityrela values (null, %s, %s, %s, %s, %s) ;"cursor.execute(sqlin2, (en[0],en[1],en[2],en[3],en[4]))
db.commit() #事务
print('ok')#-------------------------------------------------------------------------
#清除重复数据并id排序
sql = '''
delete p1
from entityrela p1,entityrela p2
where (p1.headclass = p2.headclassand p1.headentity = p2.headentityand p1.relation = p2.relationand p1.tailentity = p2.tailentityand p1.tailclass = p2.tailclassand p1.id > p2.id);
'''
cursor.execute(sql)sql = '''
ALTER TABLE entityrela DROP id;
'''
cursor.execute(sql)
sql ='''
ALTER TABLE entityrela ADD id MEDIUMINT( 8 ) NOT NULL FIRST;
'''
cursor.execute(sql)
sql ='''
ALTER TABLE entityrela MODIFY COLUMN id MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);
'''
cursor.execute(sql)
db.commit() #事务
cursor.close()
#-------------------------------------------------------------------------
#end
其中,db.commit()
表示该事务要么全部成功,要么全部不执行。cursor.close()
表示关闭数据库。
6、在MySQL中查看执行结果
(1)在MySQL中查看所有数据库
(2)使用本文创建的kgg数据库,并查看库内所有表
(3)检索任意表,查看数据
以上3步表示数据库创建成功并成功写入数据。
五、下载数据
假设我们已经创建好数据库以及上传了数据。很久以后,我们需要从数据库中下载数据,进行分析或者分享给他人,那么本文在这里考虑了这一情况。
1、连接数据库,定义工具函数
# 从数据库中调取数据,以中文显示;import pandas as pd
import pymysqldef mycursor(db_name = 'mysql80'):connection = pymysql.connect(host='localhost',user='root',password='', #123456port = 3308,database= db_name,charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)cursor = connection.cursor()return cursor, connectiondef use(db_name):'''切换数据库,返回游标'''return mycursor(db_name)def query(sql):'''以数据框形式返回查询据结果'''cursor.execute(sql)data = cursor.fetchall() # 以元组形式返回查询数据header = [t[0] for t in cursor.description]df = pd.DataFrame(list(data), columns=header) # pd.DataFrem 对列表具有更好的兼容性return df# print(df)def show_databases():'''查看服务器上的所有数据库'''sql = 'show databases;'return query(sql)def select_database():'''查看当前数据库'''sql = 'select database();'return query(sql)def show_tables():'''查看当前数据库中所有的表'''sql = 'show tables;'return query(sql)
dbname = 'mysql'
cursor, db = use(dbname)
dbname = 'kgg'
cursor, db = use(dbname)# print(show_tables())
2、选择数据,并设计输出结构
#a.headentity ,
sql = '''select m.name from entityrela a left outer join entitymin m on a.headentity = m.id'''
i_s = list(query(sql)['name'])sql = '''select m.name from entityrela a left outer join entitymin m on a.tailentity = m.id'''
j_s = list(query(sql)['name'])sql = '''select m.name from entityrela a left outer join relation m on a.relation = m.id'''
k_s = list(query(sql)['name'])eql = '''select m.name from entityrela a left outer join entity m on a.headclass = m.id'''
ek_1 = list(query(eql)['name'])eq2 = '''select m.name from entityrela a left outer join entity m on a.tailclass = m.id'''
ek_2 = list(query(eq2)['name'])result = [[i,j,k,w,p] for i,j,k,w,p in zip(i_s,ek_1,k_s,ek_2,j_s)]
print(result[:5])
cursor.close()
3、设置保存文件地址并下载
f = open(r"C:\Users\DELL\Desktop\neo4j_python\data\4.csv",'w', encoding='utf-8')
for i in result:f.write('\''+i[0]+'\',\''+i[1]+'\',\''+i[2]+'\',\''+i[3]+'\',\''+i[4]+'\'\n')
f.close()
print('ok')
六、完整项目数据和代码
以下任意方式皆可:
1、评论、留言邮箱账号,博主定期回复。
2、点击:GitHub-python_mysql (或者访问: https://github.com/chenyiadam/python_mysql.git ) 进行下载
相关文章:
Python操作MySQL数据库详细案例
Python操作MySQL数据库详细案例一、前言二、数据准备三、建立数据库四、处理和上传数据五、下载数据六、完整项目数据和代码一、前言 本文通过案例讲解如何使用Python操作MySQL数据库。具体任务为:假设你已经了解MySQL和知识图谱标注工具Brat,将Brat标注…...
MicroBlaze系列教程(8):AXI_CAN的使用
文章目录 @[toc]CAN总线概述AXI_CAN简介MicroBlaze硬件配置常用函数使用示例波形实测参考资料工程下载本文是Xilinx MicroBlaze系列教程的第8篇文章。 CAN总线概述 **CAN(Controller Area Network)**是 ISO 国际标准化的串行通信协议,是由德国博世(BOSCH)公司在20世纪80年代…...
网络安全领域中八大类CISP证书
CISP注册信息安全专业人员 注册信息安全专业人员(Certified Information Security Professional),是经中国信息安全产品测评认证中心实施的国家认证,对信息安全人员执业资质的认可。该证书是面向信息安全企业、信息安全咨询服务…...
stm32学习笔记-5EXIT外部中断
5 EXIT外部中断 [toc] 注:笔记主要参考B站 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注:工程及代码文件放在了本人的Github仓库。 5.1 STM32中断系统 图5-1 中断及中断嵌套示意图 中断 是指在主程序运行过程中,出现了特定…...
MySQL Workbench 图形化界面工具
Workbench 介绍 MySQL官方提供了一款免费的图形工具——MySQL Workbench,它是一款功能强大且易于使用的数据库设计、管理和开发工具,总之,MySQL Workbench是一款非常好用的MySQL图形工具,可以满足大多数MySQL用户的需求。 目录 W…...
雪花算法(SnowFlake)
简介现在的服务基本是分布式、微服务形式的,而且大数据量也导致分库分表的产生,对于水平分表就需要保证表中 id 的全局唯一性。对于 MySQL 而言,一个表中的主键 id 一般使用自增的方式,但是如果进行水平分表之后,多个表…...
Linux防火墙
一、Linux防火墙Linux的防火墙体系主要在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率,因…...
网络安全系列-四十七: IP协议号大全
IP协议号列表 这是用在IPv4头部和IPv6头部的下一首部域的IP协议号列表。 十进制十六进制关键字协议引用00x00HOPOPTIPv6逐跳选项RFC 246010x01ICMP互联网控制消息协议(ICMP)RFC 79220x02IGMP...
HTTP协议格式以及Fiddler用法
目录 今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天 一、HTTP协议的基本格式 二、Fiddler的用法 1.Fidder的下载 2.Fidder的使用 今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天 一、HTTP协议的基本格式 先来介绍一下http协议: http 协议(全称为 &q…...
自动写代码?别闹了!
大家好,我是良许。 这几天,GitHub 上有个很火的插件在抖音刷屏了——Copilot。 这个神器有啥用呢?简单来讲,它就是一款由人工智能打造的编程辅助工具。 我们来看看它有啥用。 首先就是代码补全功能,你只要给出函数…...
项目心得--网约车
一、RESTFULPost:新增Put:全量修改Patch:修改某个值Delete: 删除Get:查询删除接口也可以用POST请求url注意:url中不要带有敏感词(用户id等)url中的名词用复数形式url设计:api.xxx.co…...
【二叉树广度优先遍历和深度优先遍历】
文章目录一、二叉树的深度优先遍历0.建立一棵树1. 前序遍历2.中序遍历3. 后序遍历二、二叉树的广度优先遍历层序遍历三、有关二叉树练习一、二叉树的深度优先遍历 学习二叉树结构,最简单的方式就是遍历。 所谓二叉树遍历(Traversal)是按照某种特定的规则ÿ…...
Spring Cloud微服务架构必备技术
单体架构 单体架构,也叫单体应用架构,是一个传统的软件架构模式。单体架构是指将应用程序的所有组件部署到一个单一的应用程序中,并统一进行部署、维护和扩展。在单体架构中,应用程序的所有功能都在同一个进程中运行,…...
TCP三次握手与四次挥手(一次明白)
TCP基本信息 默认端口号:80 LINUX中TIME_WAIT的默认时间是30s TCP三次握手 三次握手过程:每行代表发起握手到另一方刚刚收到数据包时的状态 客户端服务端客户端状态服务端状态握手前CLOSELISTEN客户端发送带有SYN标志的数据包到服务端一次握手SYN_SENDLISTEN二次握手服务端发送…...
pyside6@Mouse events实例@QApplication重叠导致的报错@keyboardInterrupt
文章目录报错内容鼠标事件演示报错内容 在pyside图形界面应用程序开发过程中,通常只允许运行一个实例 假设您重复执行程序A,那么可能会导致一些意向不到的错误并且,从python反馈的信息不容易判断错误的真正来源 鼠标事件演示 下面是一段演示pyside6的鼠标事件mouseEvent对象…...
订单30分钟未支付自动取消怎么实现?
目录了解需求方案 1:数据库轮询方案 2:JDK 的延迟队列方案 3:时间轮算法方案 4:redis 缓存方案 5:使用消息队列了解需求在开发中,往往会遇到一些关于延时任务的需求。例如生成订单 30 分钟未支付࿰…...
< 开源项目框架:推荐几个开箱即用的开源管理系统 - 让开发不再复杂 >
文章目录👉 SCUI Admin 中后台前端解决方案👉 Vue .NetCore 前后端分离的快速发开框架👉 next-admin 适配移动端、pc的后台模板👉 django-vue-admin-pro 快速开发平台👉 Admin.NET 通用管理平台👉 RuoYi 若…...
内网渗透-基础环境
解决依赖,scope安装 打开要给cmd powershell 打开远程 Set-ExecutionPolicy RemoteSigned -scope CurrentUser; 我试了好多装这东西还是得科学上网,不然不好用 iwr -useb get.scoop.sh | iex 查看下载过的软件 安装sudo 安装git 这里一定要配置bu…...
Go语言学习的第一天(对于Go学习的认识和工具选择及环境搭建)
首先学习一门新的语言,我们要知道这门语言可以帮助我们做些什么?为什么我们要学习这门语言?就小wei而言学习这门语言是为了区块链,因为自身是php出身,因为php的一些特性只能通过一些算法模拟的做一个虚拟链,…...
C和C++到底有什么关系
C++ 读作”C加加“,是”C Plus Plus“的简称。顾名思义,C++是在C的基础上增加新特性,玩出了新花样,所以叫”C Plus Plus“,就像 iPhone 6S 和 iPhone 6、Win10 和 Win7 的关系。 C语言是1972年由美国贝尔实验室研制成功的,在当时算是高级语言,它的很多新特性都让汇编程序…...
14个Python处理Excel的常用操作,非常好用
自从学了Python后就逼迫用Python来处理Excel,所有操作用Python实现。目的是巩固Python,与增强数据处理能力。 这也是我写这篇文章的初衷。废话不说了,直接进入正题。 数据是网上找到的销售数据,长这样: 一、关联公式:…...
async/await 用法
1. 什么是 async/await async/await 是 ES8(ECMAScript 2017)引入的新语法,用来简化 Promise 异步操作。在 async/await 出 现之前,开发者只能通过链式 .then() 的方式处理 Promise 异步操作。示例代码如下: import …...
好意外,发现永久免费使用的云服务器
原因就不说了,说一下过程,在百度搜pythonIDE的时候,发现了一个网站 https://lightly.teamcode.com/https://lightly.teamcode.com/ 就是这个网站,看见这个免费试用,一开始觉得没什么,在尝试使用的过程中发…...
VSCode使用技巧,代码编写效率提升2倍以上!
VSCode是一款开源免费的跨平台文本编辑器,它的可扩展性和丰富的功能使得它成为了许多程序员的首选编辑器。在本文中,我将分享一些VSCode的使用技巧,帮助您更高效地使用它。 1. 插件 VSCode具有非常丰富的插件生态系统,通过安装插…...
SQL执行过程详解
1 、用户在客户端执行 SQL 语句时,客户端把这条 SQL 语句发送给服务端,服务端的进程,会处理这条客户端的SQL语句。 2 、服务端进程收集到SQL信息后,会在进程全局区PGA 中分配所需内存,存储相关的登录信息等。 3 、客…...
【物联网NodeJs-5天学习】第四天存储篇⑤ ——PM2,node.js应用进程管理器
【NodeJs-5天学习】第四天存储篇⑤ ——PM2,node.js应用进程管理器1. 前言2. 官方说明3. 安装PM24. PM2常用命令4.1 启动命令4.2 重新启动命令4.3 热重载命令4.4 停止命令4.5 删除命令4.6 查看进程运行状态4.4 显示某一个进程的具体信息4.8 显示日志信息4.9 终端监控…...
【C++学习】【STL】deque容器
dequeDouble Ended Queues(双向队列)deque和vector很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样)。所耗费的时间复杂度也为常数阶O(1)。并且更重要的一点是,deque 容器中存储元素并不能保证所有元素都存储到连续的内…...
当 App 有了系统权限,真的可以为所欲为?
看到群里发了两篇文章,出于好奇,想看看这些个 App 在利用系统漏洞获取系统权限之后,都干了什么事,于是就有了这篇文章。由于准备仓促,有些 Code 没有仔细看,感兴趣的同学可以自己去研究研究,多多…...
vue3.js的介绍
一.vue.js简述 Vue是一套用于构建用户开源的MVVM结构的Javascript渐进式框架,尤雨溪在2015年10月27日发布了vue.js 1.0Eavangelion版本,在2016年9月30日发布了2.0Ghost in the Shell版本,目前项目由官方负责 vue的核心只关注图层࿰…...
【Three.js】shader特效 能量盾
shader特效之能量盾前言效果噪点图主要代码index.htmldepth-fs.jsdepth-vs.jsshield-fs.jsshield-vs.js相关项目前言 效果噪点图 为了可以自定义能量球的效果,这里使用外部加载来的噪点图做纹理,省去用代码写特效的过程。 主要代码 index.html <…...
怎么在国外网站做推广/百度推广登录手机版
下面是一个运行时加载nvcuda.dll,并检测当前驱动版本最大支持的CUDA版本的例子。 #include "cuda.h" #include <stdio.h> #include <Windows.h>typedef CUresult (__cdecl *CU_DriverGetVersion)(int *);int main() {HINSTANCE nvcudalib;nvc…...
网站设计深圳市/今天的新闻内容
单例写法 在OC中,我们通常是采用dispatch_once函数来帮助我们实现单例。dispatch_once可以保证马上执行函数并且线程安全。 (instancetype)sharedInstance { static id _instance nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ …...
wordpress在php下安装教程/设计师经常用的网站
参考原文:《跟我一起写 Makefile 》 作者:陈皓目录 函数的使用 函数的调用语法 字符串处理函数 文件名操作函数 foreach 函数 if 函数 call 函数 origin 函数 shell 函数 控制 make 的函数 函数的使用 在 Makefile 中可以使用函数来处理变量,…...
django做企业级网站/拉新推广渠道
毕业时写了一段时间的C,那时候调试使用gdb,后来转了java,当时就想java程序怎么调试,找了一下,果然,那就是jdk自带的jdbwindows里是这样的Linux下是这样的一般我在linux下来调试Java程序好,那么,问题来了&am…...
个人可以做导购网站吗/百度浏览器官网
为什么mysql要使用主从模型发布时间:2020-05-09 10:38:05来源:亿速云阅读:172作者:三月本文主要给大家介绍为什么mysql要使用主从模型,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大…...
wordpress 页面别名/app推广是什么意思
之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希望能帮助到那些有需要的朋友。我是用的是MyEclipse2017 CI 3,相近版本应该都差不多。至于其他版本…...