demo7.py
from sqlalchemy import
( create_engine,
integer,
string,
column,
float,
boolean,
decimal,
datetime,
date,
time,
text,
enum,
foreignkey
)from sqlalchemy.dialects.mysql import longtext
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker,relationship,backref # sessionmaker 是基類
hostname =
'127.0.0.1'
# 資料庫位址
port =
'3306'
# 埠號
database =
'dasheng'
# 資料庫名字
username =
'root'
# 使用者名稱
password =
'123456'
# 密碼
db_uri =
'mysql+pymysql://{}:{}@{}:{}/{}'
.format
(username, password, hostname, port, database)
# 建立資料庫引擎
engine = create_engine(db_uri)
base = declarative_base(engine)
session = sessionmaker(engine)()
class
user
(base):#一
__tablename__ =
'user'
id= column(integer, primary_key=
true
, autoincrement=
true
) username = column(string(50)
, nullable=
false
)def
__repr__
(self)
:return
'user(username:%s)'
% self.username
class
userextend
(base)
: __tablename__ =
'user_extend'
id= column(integer,primary_key=
true
,autoincrement=
true
) school = column(string(50)
) uid = column(integer,foreignkey(
'user.id'))
user = relationship(
'user'
,backref=backref(
'extend'
, uselist=
false))
#uselist=false 告訴父模型 以後引用時不再是列表 而是物件
def__repr__
(self)
:return
'extend(school:%s)'
%self.school
# base.metadata.drop_all()
# base.metadata.create_all()##
# user = user(username='大聖')
# extend = userextend(school='zzuli')
# extend.user = user
## session.add(extend)
# session.commit()
user = session.query(user)
.first(
)print
(user.extend)
extend = session.query(userextend)
.first(
)print
(extend.user)
表關係 一對一,一對多,多對多
可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...
表關係 一對一,一對多,多對多
可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...
MyBatis一對一以及一對多關聯表查詢
當前資料庫中存在三個表clazz和teacher以及student,資料字典如下 clazz c id,c name,teacher id teacher t id,t name student s id,s name,class id 三個表對應的實體類如下 public class clazzp...