From 1797375445c47dcf45a22974ef5e1fa846c56449 Mon Sep 17 00:00:00 2001 From: aiteasoft Date: Wed, 1 Jan 2025 14:39:10 +0800 Subject: [PATCH 1/3] add test/exam for BeePy --- test/entity/Orders.py | 18 ++++++++++++++++++ test/entity/__init__.py | 0 test/exam/SuidTest1.py | 25 +++++++++++++++++++++++++ test/exam/__init__.py | 0 test/exam/bee.db | Bin 0 -> 122880 bytes test/exam/bee.json | 5 +++++ test/exam/bee.properties | 22 ++++++++++++++++++++++ 7 files changed, 70 insertions(+) create mode 100644 test/entity/Orders.py create mode 100644 test/entity/__init__.py create mode 100644 test/exam/SuidTest1.py create mode 100644 test/exam/__init__.py create mode 100644 test/exam/bee.db create mode 100644 test/exam/bee.json create mode 100644 test/exam/bee.properties diff --git a/test/entity/Orders.py b/test/entity/Orders.py new file mode 100644 index 0000000..1fb8ed1 --- /dev/null +++ b/test/entity/Orders.py @@ -0,0 +1,18 @@ +''' + +这种可以不需要构造方法。 +不写属性的类型 + +Created on 2024年10月19日 + +@author: BeePy +''' + +class Orders: + id = None + name = None + remark = None + + def __repr__(self): + return str(self.__dict__) + diff --git a/test/entity/__init__.py b/test/entity/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/exam/SuidTest1.py b/test/exam/SuidTest1.py new file mode 100644 index 0000000..3eab731 --- /dev/null +++ b/test/exam/SuidTest1.py @@ -0,0 +1,25 @@ +# from org.teasoft.exam.entity.Orders import Orders +# from bee.api import Suid +from bee.api import Suid +from test.entity.Orders import Orders + + +# from org.teasoft.exam.entity.Test import Test +if __name__ == '__main__': + print("start") + + # orders=Orders(id=1, name="bee") + orders=Orders() + # orders = Test() + # orders.id=1 + orders.name = "bee" + + suid = Suid() + orderList = suid.select(orders) #test + orderList = suid.select(orders) + # print(orderList) + + for one in orderList: + print(one) + + print("finished") diff --git a/test/exam/__init__.py b/test/exam/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/exam/bee.db b/test/exam/bee.db new file mode 100644 index 0000000000000000000000000000000000000000..afa0d7ca797467f70ba2a470fdd8a069cc750e7c GIT binary patch literal 122880 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 Kjds`)!2bh5%{0mY literal 0 HcmV?d00001 diff --git a/test/exam/bee.json b/test/exam/bee.json new file mode 100644 index 0000000..1022fd1 --- /dev/null +++ b/test/exam/bee.json @@ -0,0 +1,5 @@ + { + "dbName": "SQLite", + "database": "bee.db", + "dbModuleName":"sqlite3" + } \ No newline at end of file diff --git a/test/exam/bee.properties b/test/exam/bee.properties new file mode 100644 index 0000000..9fd8ef6 --- /dev/null +++ b/test/exam/bee.properties @@ -0,0 +1,22 @@ + + # 'dbName':'MySQL', + # 'host': 'localhost', # \u6570\u636E\u5E93\u4E3B\u673A + # 'user': 'root', # \u66FF\u6362\u4E3A\u60A8\u7684 MySQL \u7528\u6237\u540D + # 'password': '', # \u66FF\u6362\u4E3A\u60A8\u7684 MySQL \u5BC6\u7801 + # 'database': 'bee', # \u66FF\u6362\u4E3A\u60A8\u7684\u6570\u636E\u5E93\u540D\u79F0 + # 'port':3306 + +#value is: MySql,SQLite,Oracle, +#MySQL config +#bee.db.dbName=MySQL +#bee.db.host =localhost +#bee.db.user =root +#bee.db.password = +#bee.db.database =bee +#bee.db.port=3306 + +# SQLite + +bee.db.dbName=SQLite +bee.db.database =bee.db + -- Gitee From 6aea71e4b138bad0fb27a327c2fefda33cccff27 Mon Sep 17 00:00:00 2001 From: aiteasoft Date: Wed, 1 Jan 2025 14:47:23 +0800 Subject: [PATCH 2/3] reuse the connection --- bee/context.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/bee/context.py b/bee/context.py index 2ef0f81..53435a5 100644 --- a/bee/context.py +++ b/bee/context.py @@ -18,7 +18,8 @@ class HoneyContext: conn = factory.get_connection() if conn is not None: # conn.ping(reconnect=True) #重新获取,要重连。 只是mysql? - return conn + if HoneyContext.is_active_conn(conn): + return conn honeyConfig = HoneyConfig() config = honeyConfig.get_db_config_dict() @@ -53,3 +54,23 @@ class HoneyContext: #还要有set的方法,或在配置文件中设置 TODO + + + @staticmethod + def is_active_conn(conn): + + honeyConfig=HoneyConfig() + dbName=honeyConfig.get_dbName().lower() + + if dbName is None: + return False + elif dbName == DatabaseConst.MYSQL.lower(): + try: + conn.ping(reconnect=True) + return True + except Exception: + return False + #TODO support other DB + + return False + \ No newline at end of file -- Gitee From 56cd62ef0ca660e3c1e0203c49b4bbdc55397cdf Mon Sep 17 00:00:00 2001 From: aiteasoft Date: Wed, 1 Jan 2025 15:00:08 +0800 Subject: [PATCH 3/3] add __init__.py --- test/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/__init__.py diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 0000000..e69de29 -- Gitee