python mysqldb 模块学习
一、安装(环境win7 、python2.7)
Python2.x 版本,使用MySQL-python:
安装包:MySQL-python-1.2.5.win32-py2.7.exe(双击安装) 下载地址:https://pypi.python.org/pypi/MySQL-python
二、代码
#coding:utf-8
#执行sql:execute、executmany(合理调用executmany,将多个insert放在一起,只执行一次IO,可以有效的提升数据库性能,但executmany不能一次数据量过大)
#cur.execute(ssql) #执行sql(一次仅能执行一条)
#conn.rollback() #回滚(commit前可做相应回滚,commit后无法再robllback)
#conn.commit() #提交到数据库执行(支持事务的存储引擎,需要commit,才真正写入数据库,执行多条sql后再一次调用 commit,可以适当提升性能)
#提取数据:fetchone、fetchall、fetchmany
# cur.fetchone()
#result=cur.fetchall() #结果集
#for row in result:
#print result[0][1]
#print "Nuber of rows returned: %d" %cur.rowcount #打印总条数,%d:输出整数格式
import MySQLdb
import MySQLdb.cursors
import time #################连接数据库
#连接数据库 ,MySQLdb.Connect(host ,user , passw , db)
class DbOperation():
def __init__(self,host,user,passwd,db):
self.db_error_msg=None
self.db_result=True
self.conn=''
self.host=host
self.user=user
self.passwd=passwd
self.db=db
try:
self.conn=MySQLdb.Connect(self.host,self.user,self.passwd,self.db)
#return self.conn
except MySQLdb.OperationalError as e:
self.db_error_msg=u'连接数据库' + self.conn.user + u'失败!'
self.db_result=False #################insert
#join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
def insert(self,table_name,data):
for key in data: #for循环遍历字典data的键值key
data[key]="'"+str(data[key])+"'" #data[key] :获取key相应元素的值
key=','.join(data.keys()) #字典的元素
value=','.join(data.values()) #字典的元素的值
isql="INSERT INTO " + table_name + " (" + key + ") VALUES (" + value + ")"
cur=self.conn.cursor()
cur.execute(isql)
self.conn.commit() #################执行sql操作
def exesql(self,sql):
self.db_result=True
cur=self.conn.cursor()
try:
cur.execute(sql)
print "Nuber of rows returned: %d" %cur.rowcount
except Exception,msg:
self.db_error_msg = u'执行sql语句出错:' + sql
self.db_result = False
return False #################关闭
def close(self):
self.conn.close() if __name__=='__main__':
db1=DbOperation('10.118.55.106','test01','123456','test')
sql="select * from ts_user"
table_name="ts_user"
data={'user_id':200000012,'username':100000,'type_code':1,'status':1} #字典
db1.insert(table_name,data)
db1.exesql(sql)
db1.close()
python mysqldb 模块学习的更多相关文章
- python - argparse 模块学习
python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- python paramiko模块学习分享
python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...
- Python logging 模块学习
logging example Level When it's used Numeric value DEBUG Detailed information, typically of interest ...
- Python time模块学习
Python time模块提供了一些用于管理时间和日期的C库函数,由于它绑定到底层C实现,因此一些细节会基于具体的平台. 一.壁挂钟时间 1.time() time模块的核心函数time(),它返回纪 ...
- python os模块学习
一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是wi ...
- Python MySQLdb 模块
MySQLdb 是 Python2 连接 MySQL 的一个模块,常见用法如下: [root@localhost ~]$ yum install -y MySQL-python # 安装 MySQLd ...
- python logging模块学习(转)
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- python atexit模块学习
python atexit模块 只定义了一个register模块用于注册程序退出时的回调函数,我们可以在这个函数中做一下资源清理的操作 注:如果程序是非正常crash,或者通过os._exit()退出 ...
随机推荐
- 让一个 csproj 项目指定多个开发框架[转]
原贴:https://walterlv.gitee.io/post/configure-projects-to-target-multiple-platforms.html 可移植类库.共享项目..N ...
- xaf 学习 RuleUniqueValueAttribute 唯一验证。
xaf 学习 RuleUniqueValueAttribute 唯一验证. RuleUniqueValue("", DefaultContexts.Save, CriteriaE ...
- EasyUI DataGrid可编辑单元格
效果如图: 首先在需要可编辑的列上添加一个editor属性,列定义为numberbox编辑类型 <th field="SCORES" editor="{type:' ...
- 请写出5种常见到的runtime exception。
请写出5种常见到的runtime exception. 解答: NullPointerException:当操作一个空引用时会出现此错误. NumberFormatException:数据格式转换出现 ...
- 简要描述如何结合struts、hibernate、spring开发Web应用?
简要描述如何结合struts.hibernate.spring开发Web应用? 解答:Struts可以将jsp页面的表单关联起来,就是把JSP页面的表单数据封装成javaBean,这样的话,在acti ...
- 栈类Stack
Stack类是Vector类的子类.它向用户提供了堆栈这种高级的数据结构.栈的基本特性就是先进后出.即先放入栈中的元素将后被推出.Stack类中提供了相应方法完成栈的有关操作. 基本方法: publi ...
- String类和StringBuffer类
位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以.它用于封装内容可变的字符串.它可以使用tostring()转换成stri ...
- 【问题】SUSE已经安装了libsodium,安装zeromq时出现下面的错误?
1.[问题]SUSE已经安装了libsodium,安装zeromq时出现下面的错误? checking for libsodium... no configure: error: Package re ...
- jni调用 java.lang.UnsatisfiedLinkError: no segmentor_jni in java.library.path
改过 LD_LIBRARY_PATH 改过 /etc/ld.so.conf 参考这篇文章 http://blog.csdn.net/zjuylok/article/details/4152559 最后 ...
- PANDAS 数据合并与重塑(join/merge篇)
pandas中也常常用到的join 和merge方法 merge pandas的merge方法提供了一种类似于SQL的内存链接操作,官网文档提到它的性能会比其他开源语言的数据操作(例如R)要高效. 和 ...