示例#1
0
文件: dao.py 项目: hapylestat/cube
  def delete(self, obj):
    """
    :type obj self.__entity_type()
    """
    flds = self.__get_fields(obj)
    where_fields = {}
    for field in flds:
      if not (flds[field].nullable and obj.__dict__[field] is None):
        where_fields[field] = obj.__dict__[field] if field not in obj._db_values else obj._db_values[field]

    Database.delete(self.__entity_type.__name__, where_fields)
示例#2
0
文件: dao.py 项目: hapylestat/cube
  def insert(self, obj):
    """
    :type obj object
    """
    flds = self.__get_fields(obj)
    fields = []
    values = []
    for field in flds:
     if not flds[field].auto_increment:
       fields.append(field)
       values.append(obj.__dict__[field])

    Database.insert(obj.__class__.__name__, fields, values)
示例#3
0
文件: dao.py 项目: hapylestat/cube
  def update(self, obj):
    """
    :type obj self.__entity_type()
    """

    update_fields = {}
    where_fields = {}
    flds = self.__get_fields(obj)

    for field in flds:
      if not (flds[field].nullable and obj.__dict__[field] is None):
        where_fields[field] = obj.__dict__[field] if field not in obj._db_values else obj._db_values[field]
        if not flds[field].auto_increment:
          update_fields[field] = obj.__dict__[field]

    Database.update(self.__entity_type.__name__, update_fields, where_fields)
示例#4
0
文件: dao.py 项目: hapylestat/cube
  def find(self, where_clause=None, **kwargs):
    """
    :rtype list
    """
    flds = self.__get_fields(self.__entity_type)
    if where_clause and isinstance(where_clause, WhereNode):
      r = Database.select(self.__entity_type.__name__, flds, where_clause=where_clause)
    else:
      r = Database.select(self.__entity_type.__name__, flds, where_fields=kwargs)

    result_entities = []

    for ritem in r:  # iterate thought rows
      entity = self.__entity_type()
      for i in range(0, len(flds)):
        if flds[i] in entity.__dir__():
          entity.__setattr__(flds[i], ritem[i])

      result_entities.append(entity)

    return result_entities
示例#5
0
文件: dao.py 项目: hapylestat/cube
  def findall(self):
    """
    :rtype list
    """
    flds = self.__get_fields(self.__entity_type)
    r = Database.select(self.__entity_type.__name__, flds)

    result_entities = []

    for ritem in r:  # iterate thought rows
      entity = self.__entity_type()
      for i in range(0, len(flds)):
        if flds[i] in entity.__dir__():
          entity.__setattr__(flds[i], ritem[i])

      result_entities.append(entity)

    return result_entities
示例#6
0
 def prepare_clean_database(cls):
   """
   :rtype Database
   """
   Database.close()
   Database.open(":memory:")
示例#7
0
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# Copyright (c) 2015 Reishin  <*****@*****.**>
#                    crashtua <*****@*****.**> and Contributors

from orm.Entities import Person, Notes
from dao.Person import PersonDAO
from cube.database import Database


# uncomment to write database to disk
Database.open("D:\\test.db")

# normal test case
pdao = PersonDAO()

p = Person(name="My Person", description="human")


p.name = "NewName"
if Database.has_created():
  for i in range(1, 10):
    p.name = "Person %s" % i
    pdao.insert(p)

results = pdao.findall()

for item in results: