前言
(sql部分的筆記較多難以整理,先簡單說明一下如何使用python進行資料庫連接,此外由于Java的技術堆疊過長,接下來的學習將重新回歸到python先實作效果,之后再使用Java進行實作,做進一步的優化)
利用Python來實作資料庫的連接的話,其實很簡單,我們主流使用的第三方庫是pymysql這是一個使用python來實作的第三方庫,當然在不同的框架中可以直接呼叫相關使用資料庫的方法,那么這里先簡單說一下怎么使用pymysql實作資料庫的連接,
建立資料連接
其實使用pymysql進行資料庫的連接是非常簡單的,第一步就是建立資料庫連接(在python當中,這其實更像是使用了一個代理)
import pymysql
try:
#建立連接
conn=pymysql.connect(
host='127.0.0.1',port=3306,user='Huterox',
passwd='passwd',db='huterox',charset='utf8'
)
except pymysql.Error as err:
print(err)
操作流程
下面為了更好的理解相關操作,請看下面的流程圖,它將很好地反映這個pymysql的操作方式,

使用游標執行sql陳述句
資料 增,洗掉,改
這個資料的查詢和這幾個是不太一樣的,說以下面再說,
先展示以先當前的演示環境

現在我們在這里面插入資料
Sqlcomm = """insert into hello(name,age) value(%s,%s)"""
cursor.execute(Sqlcomm,("xx",15))
import pymysql
#建立連接
conn=pymysql.connect(
host='127.0.0.1',port=3306,user='Huterox',
passwd='865989840',db='huterox',charset='utf8'
)
cursor = conn.cursor()
try:
Sqlcomm = """insert into hello(name) value(%s)"""
cursor.execute(Sqlcomm,("小剛"))
conn.commit()#提交
except pymysql.Error as err:
conn.rollback()#回滾
print(err)
finally:
conn.close()

現在已經加入了,這一條,那么現在添加age和heigh的值
update hello set age=15,heigh=185 where name=%s
import pymysql
#建立連接
conn=pymysql.connect(
host='127.0.0.1',port=3306,user='Huterox',
passwd='865989840',db='huterox',charset='utf8'
)
cursor = conn.cursor()
try:
Sqlcomm = """update hello set age=15,heigh=185 where name=%s"""
res = cursor.execute(Sqlcomm,("小剛"))
if res==1:
#一條受影響,回傳一
print("修改成功")
conn.commit()#提交
except pymysql.Error as err:
conn.rollback()#回滾
print(err)
finally:
conn.close()

接下來就是洗掉了,那還不簡單
delete from hello where name=’小剛‘

資料的查找
這個就有點區別了
看代碼
import pymysql
#建立連接
conn=pymysql.connect(
host='127.0.0.1',port=3306,user='Huterox',
passwd='865989840',db='huterox',charset='utf8'
)
cursor = conn.cursor()
try:
Sqlcomm = """select name as 名字,age as 年齡, heigh as 身高 from hello"""
cursor.execute(Sqlcomm)
for row in cursor.fetchall():
print(row)
conn.commit()#提交
except pymysql.Error as err:
conn.rollback()#回滾
print(err)
finally:
conn.close()
cursor 有三個方法獲取結果

這個一目了然,fetchall()就是全部結果
這個回傳結果是一個大元組,里面都是一個個小元組

那么在這里的化還可以設定為字典,也最好設定為字典,
conn=pymysql.connect(
host='127.0.0.1',port=3306,user='Huterox',
passwd='pw',db='huterox',charset='utf8',
cursorclass=pymysql.cursors.DictCursor
)

注入防范
這個在pymysql里面比較好的就是它會幫助我們自己完成防范,你只需要,把變數,也就是用戶輸入當作元組在execute()函式中放置,而不是在字串里面拼接即可,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/291463.html
標籤:java
