python連線資料庫進行操作時,如果封裝相關操作,需要時直接進行呼叫,可以避免執行sql操作時的重複**書寫。
import pymysql
class
dbmysql
:# 引數用於連線資料庫
def__init__
(self, host, port, user, passwd, database, charset)
: self.host = host
self.port = port
self.user = user
self.passwd = passwd
self.database = database
self.charset = charset
self.cur =
none
self.conn =
none
def
connect_db
(self)
: self.conn = pymysql.connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd,
database=self.database, charset=self.charset)
# 連線成功就獲取游標
if self.conn:
self.cur = self.conn.cursor(
)
def
close_db
(self)
:if self.conn:
if self.cur:
self.cur.close(
) self.conn.close(
)
def
find
(self, sql,
*args)
: datas =
none
try:
# 連線資料庫
self.connect_db(
)# 執行查詢操作
self.cur.execute(sql, args)
# 獲取查詢結果
datas = self.cur.fetchall(
)except exception as e:
print
(e)finally
: self.close_db(
)return datas
def
insert
(self, table_name,
*args)
:# 對輸入的引數進行處理,使sql合法化,否則無法進行插入操作。
# 數值型別需要轉換為字串,字串型別需要在外層加引號,null型別需要去掉外層引號。
data =
",".join(
[x if x !=
'"null"'
else
eval
(x)for x in
[str
(ele)
ifisinstance
(ele,
int)
else
'"%s"'
% ele for ele in args]])
sql =
"insert into %s values(%s)"
%(table_name, data)
print
(sql)
try:
# 連線資料庫
self.connect_db(
)# 執行插入語句
self.cur.execute(sql)
# 提交
self.conn.commit(
)except exception as e:
print
(e)finally
:# 關閉資料庫連線
self.close_db(
)
def
delete
(self, sql,
*args)
: self.__execute_sql(sql, args)
defupdate
(self, sql,
*args)
: self.__execute_sql(sql, args)
# 更新和刪除操作類似,定義私有方法執行
def__execute_sql
(self, sql,
*args)
:try
:# 連線資料庫
self.connect_db(
)# 執行sql語句
self.cur.execute(sql, args)
# 提交
self.conn.commit(
)except exception as e:
print
(e)# 出現異常,不提交而是回滾
self.conn.rollback(
)finally
:# 關閉資料庫連線
self.close_db(
)
from utils import dbmysql
if __name__ ==
'__main__'
: db = dbmysql(host=
"127.0.0.1"
, port=
3306
, user=
"root"
, passwd=
"123456"
, database=
"testdb"
, charset=
"utf8"
) datas = db.find(
"select * from emp where ename= %s",[
"smith",]
)print
(datas)
db.insert(
"emp"
,7759
,"lucy1"
,"clerk"
,7882
,"1994-11-10"
,2000
,"null",30
) db.delete(
"delete from emp where ename=%s",[
"lucy"])
db.update(
"update emp set sal=100 where ename=%s",[
"nick"
])
Golang 對MongoDB的操作簡單封裝
golang 對mongodb的操作簡單封裝 使用mongodb的go驅動庫 mgo,對mongodb的操作做一下簡單封裝 初始化var globals mgo.session func init globals s 複製 func init 資料庫位址 dbhost mongodb timeout...
python封裝的方法 Python類和封裝方法
我是oop新手,這是我建立python類的第一次嘗試。我試圖使我的3個變數私有化,以便只有方法更新資訊 強制封裝 似乎如果我從類中刪除setters和getters方法,它對我的 沒有影響 一定是初始化器方法在做這項工作嗎?我能做些什麼來改善這一點?謝謝。在 編輯 我已經更新了我的 並刪除了初始化。...
PHP對類的操作
一直都想寫乙個類似與檢測使用的system。現在估計有機會了。可以好好計畫下。今天看了下php類這塊的東西。寫了段 貼一下,以後很好理解!header cache control no cache,must revalidate flush class web select class web po...