连接数据库-stone
# -*- coding:utf-8 -*- import pymysql class mysql:
def __init__(self, host, port, dbuser, dbpwd, dbname):
self.host = host
self.port = port
self.dbuser = dbuser
self.dbpwd = dbpwd
self.dbname = dbname
self._conn = None
self.Connect() # 默认链接数据库, 最后要调用关闭链接的函数Con_close()函数 def Connect(self):
if not self._conn:
# print('\033[33m 已创建数据库链接.......... \033[5m')
self._conn = pymysql.connect(host=self.host,
port=self.port,
user=self.dbuser,
passwd=self.dbpwd,
db=self.dbname,
use_unicode=True,
charset='utf8',
cursorclass=pymysql.cursors.DictCursor) # cursorclass=pymysql.cursors.DictCursor
# MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,
# 无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行。
else:
print('\033[33m 链接数据库已存在,请直接操作!\033[5m')
pass def Con_close(self):
if self._conn:
# print('\033[33m 数据库链接已关闭!!! \033[5m')
self._conn.close()
self._conn = None
pass
pass def NewCursor(self):
cur = self._conn.cursor()
if cur:
return cur
else:
print('\033[33m #Error# Get New Cursor Failed \033[5m')
return None
pass def DelCursor(self, cur):
if cur:
cur.close()
pass
pass def Export(self, sql, file_name, colfg='\t\t'):
"""
将查询结果导出到外部文件中
:param sql:
:param file_name:
:param colfg:
:return:
"""
rt = self.Query(sql)
if rt:
with open(file_name, 'w') as fd:
for row in rt:
in_info = ''
for col in row:
in_info += str(col) + colfg
in_info += '\n'
fd.write(in_info) def Query(self, sql, debug=0):
"""
对数据库执行查询操作,sql为所需要执行的查询语句,debug控制是否显示查询的表结构(默认不查询即debug=0)
:param sql:
:param debug:
:return:
"""
rt = []
cur = self.NewCursor()
if not cur:
return rt
try:
cur.execute(sql)
while 1:
ts = cur.fetchone()
if ts is None:
break
rt.append(ts)
if debug:
filename = []
for field in cur.description:
filename.append(field[0])
print(filename)
# print('\033[33m Query Success!!! \033[5m')
except Exception as err:
print(err)
print('\033[33m Exec Sql failed: "{0}" \033[5m'.format(sql))
finally:
self.DelCursor(cur)
return rt def Exec(self, sql):
"""
对数据库执行增、删、改操作,传入需要执行的SQL语句
:param sql:
:return:
"""
rt = None
cur = self.NewCursor()
if not cur:
return rt
try:
cur.execute(sql)
# print('\033[33m update/delete/insert Success! \033[5m')
self._conn.commit()
except Exception as err:
print('\033[33m Exec Sql Failed: "{0}" \033[5m'.format(sql))
print(err)
cur.rollback()
finally:
self.DelCursor(cur)
return rt
连接数据库-stone的更多相关文章
- react+redux教程(八)连接数据库的redux程序
前面所有的教程都是解读官方的示例代码,是时候我们自己写个连接数据库的redux程序了! 例子 这个例子代码,是我自己写的程序,一个非常简单的todo,但是包含了redux插件的用法,中间件的用法,连接 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- winForm连接数据库(sqlserver2005)
帮同学搞个课程设计winform连接sqlserver2005 具体方法: .添加App.config文件 2.在App.config文件中添加节点 <?xml version="1. ...
- c3p0连接数据库的3种方式
c3p0连接数据库的3种方式,这里以mysql为例 1. 直接用set方法设置参数, 基本方法 ComboPooledDataSource dataSource = new ComboPooledDa ...
- Java连接数据库的辣几句话
Java连接数据库的辣几句话 1.java连接Oracle数据库 使用以下代码三个步骤: 1.下载ojdbc.jar包并导入项目中.附下载地址:http://download.csdn.net/det ...
- 基础的jdbc连接数据库操作
首先我们知道在数据库中,我们可以直接写sql或者直接通过数据库工具操作数据,但是在java程序中我们是不能直接操作数据库数据的,所以这就引入了jdbc操作. 百度百科:JDBC(Java Data B ...
- Python 3.x 连接数据库(pymysql 方式)
==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 ...
- JDBC连接数据库
JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...
- java开发中JDBC连接数据库代码和步骤
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...
随机推荐
- openstack 基镜像与差异镜像的整合
- url参数带点
今天在处理一些接口的时候,发现了一些神奇bug. url路径参数/binbin没有问题 但是/jay.chou 发现查不到正确数据了. 其实是spring没有配置好参数带点的情况. RequestMa ...
- leetcode557
public class Solution { public string ReverseWords(string s) { var list = s.Split(' ').AsEnumerable( ...
- leetcode415
public class Solution { public string AddStrings(string num1, string num2) { //判断num1和num2的长度,进行对齐 i ...
- jquery ajax 赋值问题, 后面程序判断逻辑用
添加async:false; 像 $.get() 等是没有async参数的, 所以需要用到如下 $.ajaxSetup({ async : false //这个意思是等这个ajax有了返回值后才会执行 ...
- 列表(ul ol dl)
Title 1 2 3 1 2 3 a 1 2 b 1 2 <!DOCTYPE html> <html lang="en"> <head> &l ...
- Spring MVC 异常处理 - SimpleMappingExceptionResolver
希望对一些异常统一处理,他将异常类名映射为视图名,即发生异常时使用对应的视图报告异常.
- 基于OpenGL编写一个简易的2D渲染框架-13 使用例子
这是重构渲染器的最后一部分了,将会给出一个 demo,测试模板测试.裁剪测试.半透明排序等等: 上图是本次 demo 的效果图,中间的绿色图形展现的是模板测试. 模板测试 void init(Pass ...
- Inteiilj IDEA 团队代码格式规范
目录 Intellij IDEA code format Tabs and Indents Spaces Wrapping and Braces Imports 更新 Intellij IDEA co ...
- list接口如何使用
1集合类,在java语言中的java.util包提供了一些集合类,这些集合类又被称作容器. 2区别集合类和数组.(1)数组的长度是固定的,集合的长度是可变的.(2)数组是用来存放基本数据类型的,集合是 ...