Revision 4d58ef6a
Von Christian Ehringfeld vor mehr als 10 Jahren hinzugefügt
| EntityManager.pro | ||
|---|---|---|
|
src/entitymanager.h \
|
||
|
src/database.h \
|
||
|
src/enums/databasetype.h \
|
||
|
src/schema.h
|
||
|
src/schema.h \
|
||
|
src/schema/sqliteschema.h \
|
||
|
src/tableschema.h \
|
||
|
src/columnschema.h
|
||
|
|
||
|
SOURCES += \
|
||
|
src/base/entity.cpp \
|
||
|
src/entity.cpp \
|
||
|
src/entitymanager.cpp \
|
||
|
src/database.cpp \
|
||
|
src/schema.cpp
|
||
|
src/schema.cpp \
|
||
|
src/schema/sqliteschema.cpp \
|
||
|
src/tableschema.cpp \
|
||
|
src/columnschema.cpp
|
||
|
|
||
|
unix {
|
||
|
target.path = /usr/lib
|
||
|
INSTALLS += target
|
||
|
}
|
||
|
CONFIG += c++11
|
||
| src/columnschema.cpp | ||
|---|---|---|
|
#include "columnschema.h"
|
||
|
using namespace CuteEntityManager;
|
||
|
|
||
|
ColumnSchema::ColumnSchema() {
|
||
|
|
||
|
}
|
||
|
|
||
|
ColumnSchema::~ColumnSchema() {
|
||
|
|
||
|
}
|
||
|
|
||
|
QString ColumnSchema::getName() const {
|
||
|
return name;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setName(const QString &value) {
|
||
|
name = value;
|
||
|
}
|
||
|
|
||
|
bool ColumnSchema::getAllowNull() const {
|
||
|
return allowNull;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setAllowNull(bool value) {
|
||
|
allowNull = value;
|
||
|
}
|
||
|
|
||
|
QString ColumnSchema::getDbType() const {
|
||
|
return dbType;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setDbType(const QString &value) {
|
||
|
dbType = value;
|
||
|
}
|
||
|
|
||
|
QString ColumnSchema::getDefaultValue() const {
|
||
|
return defaultValue;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setDefaultValue(const QString &value) {
|
||
|
defaultValue = value;
|
||
|
}
|
||
|
|
||
|
QList<QString> ColumnSchema::getEnumValues() const {
|
||
|
return enumValues;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setEnumValues(const QList<QString> &value) {
|
||
|
enumValues = value;
|
||
|
}
|
||
|
|
||
|
quint8 ColumnSchema::getSize() const {
|
||
|
return size;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setSize(const quint8 &value) {
|
||
|
size = value;
|
||
|
}
|
||
|
|
||
|
quint8 ColumnSchema::getPrecision() const {
|
||
|
return precision;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setPrecision(const quint8 &value) {
|
||
|
precision = value;
|
||
|
}
|
||
|
|
||
|
quint8 ColumnSchema::getScale() const {
|
||
|
return scale;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setScale(const quint8 &value) {
|
||
|
scale = value;
|
||
|
}
|
||
|
|
||
|
bool ColumnSchema::getPrimaryKey() const {
|
||
|
return primaryKey;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setPrimaryKey(bool value) {
|
||
|
primaryKey = value;
|
||
|
}
|
||
|
|
||
|
bool ColumnSchema::getAutoIncrement() const {
|
||
|
return autoIncrement;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setAutoIncrement(bool value) {
|
||
|
autoIncrement = value;
|
||
|
}
|
||
|
|
||
|
bool ColumnSchema::getUnsignedColumn() const {
|
||
|
return unsignedColumn;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setUnsignedColumn(bool value) {
|
||
|
unsignedColumn = value;
|
||
|
}
|
||
|
|
||
|
QString ColumnSchema::getComment() const {
|
||
|
return comment;
|
||
|
}
|
||
|
|
||
|
void ColumnSchema::setComment(const QString &value) {
|
||
|
comment = value;
|
||
|
}
|
||
|
|
||
| src/columnschema.h | ||
|---|---|---|
|
#ifndef COLUMNSCHEMA_H
|
||
|
#define COLUMNSCHEMA_H
|
||
|
#include <QString>
|
||
|
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
|
class ColumnSchema
|
||
|
{
|
||
|
public:
|
||
|
ColumnSchema();
|
||
|
~ColumnSchema();
|
||
|
QString getName() const;
|
||
|
void setName(const QString &value);
|
||
|
|
||
|
bool getAllowNull() const;
|
||
|
void setAllowNull(bool value);
|
||
|
|
||
|
QString getDbType() const;
|
||
|
void setDbType(const QString &value);
|
||
|
|
||
|
QString getDefaultValue() const;
|
||
|
void setDefaultValue(const QString &value);
|
||
|
|
||
|
QList<QString> getEnumValues() const;
|
||
|
void setEnumValues(const QList<QString> &value);
|
||
|
|
||
|
quint8 getSize() const;
|
||
|
void setSize(const quint8 &value);
|
||
|
|
||
|
quint8 getPrecision() const;
|
||
|
void setPrecision(const quint8 &value);
|
||
|
|
||
|
quint8 getScale() const;
|
||
|
void setScale(const quint8 &value);
|
||
|
|
||
|
bool getPrimaryKey() const;
|
||
|
void setPrimaryKey(bool value);
|
||
|
|
||
|
bool getAutoIncrement() const;
|
||
|
void setAutoIncrement(bool value);
|
||
|
|
||
|
bool getUnsignedColumn() const;
|
||
|
void setUnsignedColumn(bool value);
|
||
|
|
||
|
QString getComment() const;
|
||
|
void setComment(const QString &value);
|
||
|
|
||
|
private:
|
||
|
QString name;
|
||
|
bool allowNull;
|
||
|
QString dbType;
|
||
|
QString defaultValue;
|
||
|
QList<QString> enumValues;
|
||
|
quint8 size;
|
||
|
quint8 precision;
|
||
|
quint8 scale;
|
||
|
bool primaryKey;
|
||
|
bool autoIncrement;
|
||
|
bool unsignedColumn;
|
||
|
QString comment;
|
||
|
};
|
||
|
}
|
||
|
#endif // COLUMNSCHEMA_H
|
||
| src/database.cpp | ||
|---|---|---|
|
DatabaseType Database::getDatabaseType() {
|
||
|
QString d = this->database.driverName();
|
||
|
if(d == "qmysql") {
|
||
|
return OpenTeacherTool::MYSQL;
|
||
|
return CuteEntityManager::MYSQL;
|
||
|
} else if(d == "qpgsql") {
|
||
|
return OpenTeacherTool::PGSQL;
|
||
|
return CuteEntityManager::PGSQL;
|
||
|
} else {
|
||
|
return OpenTeacherTool::SQLITE;
|
||
|
return CuteEntityManager::SQLITE;
|
||
|
}
|
||
|
}
|
||
|
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
|
||
|
QString Database::sqliteTableList() {
|
||
|
return "SELECT tbl_name FROM sqlite_master WHERE type='table';";
|
||
|
}
|
||
|
|
||
|
QString Database::mysqlTableList() {
|
||
|
return "SHOW TABLES;";
|
||
|
}
|
||
|
//QString Database::mysqlTableList() {
|
||
|
// return "SHOW TABLES;";
|
||
|
//}
|
||
|
|
||
|
QString Database::pgsqlTableList() {
|
||
|
return "SELECT table_name FROM information_schema.tables WHERE table_catalog = '"+this->database.databaseName()+"';";
|
||
|
}
|
||
|
//QString Database::pgsqlTableList() {
|
||
|
// return "SELECT table_name FROM information_schema.tables WHERE table_catalog = '"+this->database.databaseName()+"';";
|
||
|
//}
|
||
|
|
||
|
Database::~Database() {
|
||
|
if(this->database.isOpen()) {
|
||
| src/entity.cpp | ||
|---|---|---|
|
/*
|
||
|
Base class for all models
|
||
|
Copyright (C) 2013 Christian Ehringfeld <c.ehringfeld@t-online.de>
|
||
|
|
||
|
This file is part of OpenTeacherTool.
|
||
|
|
||
|
OpenTeacherTool is free software: you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation, either version 3 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
OpenTeacherTool 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.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with OpenTeacherTool. If not, see <http://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
* Copyright (C) 2015 Christian Ehringfeld <c.ehringfeld@t-online.de>
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify it
|
||
|
* under the terms of the GNU Lesser General Public License as published by
|
||
|
* the Free Software Foundation.
|
||
|
*
|
||
|
* 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.
|
||
|
*
|
||
|
* You should have received a copy of the GNU Lesser General Public License
|
||
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
|
||
|
#include "entity.h"
|
||
|
|
||
|
namespace OpenTeacherTool {
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
|
Entity::Entity() {
|
||
|
Entity::Entity() : QObject(){
|
||
|
this->id = -1;
|
||
|
this->relations = new QHash<QString,Entity*>();
|
||
|
this->attributeValues = new QHash<QString, QVariant>();
|
||
|
}
|
||
|
|
||
|
qint64 Entity::getId() {
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
void Entity::setId(qint64 id) {
|
||
|
this->id = id;
|
||
|
this->id = id;
|
||
|
}
|
||
|
|
||
|
Entity::~Entity() {
|
||
|
delete this->relations;
|
||
|
delete this->attributeValues;
|
||
|
}
|
||
|
|
||
|
Entity* Entity::getEntity() {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
QString Entity::idColumnSQL() {
|
||
|
return "id BIGINT NOT NULL";
|
||
|
}
|
||
|
|
||
|
//QHash<QString, QString> OpenTeacherTool::Entity::getProperties(Datebasetype t) {
|
||
| src/entity.h | ||
|---|---|---|
|
#include <QMap>
|
||
|
#include <QDebug>
|
||
|
#include <QObject>
|
||
|
#include "enums/persistencetype.h"
|
||
|
#include "enums/databasetype.h"
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
| src/entitymanager.cpp | ||
|---|---|---|
|
*/
|
||
|
|
||
|
#include "entitymanager.h"
|
||
|
|
||
|
using namespace CuteEntityManager;
|
||
|
/**
|
||
|
* Relationen fehlen noch
|
||
|
* Fehlermeldungen erstellen am besten eine Exception Klasse diesbzgl. erstellen
|
||
|
*/
|
||
|
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
|
|
||
|
QStringList EntityManager::connectionNames = QStringList();
|
||
|
|
||
|
EntityManager::EntityManager(QSqlDatabase database) {
|
||
| ... | ... | |
|
}
|
||
|
}
|
||
|
return rc;
|
||
|
}
|
||
|
|
||
|
}
|
||
| src/schema.cpp | ||
|---|---|---|
|
#include "schema.h"
|
||
|
using namespace CuteEntityManager;
|
||
|
|
||
|
Schema::Schema()
|
||
|
{
|
||
|
Schema::Schema() {
|
||
|
|
||
|
}
|
||
|
|
||
|
Schema::~Schema()
|
||
|
{
|
||
|
Schema::~Schema() {
|
||
|
|
||
|
}
|
||
|
|
||
| src/schema.h | ||
|---|---|---|
|
#ifndef SCHEMA_H
|
||
|
#define SCHEMA_H
|
||
|
#include <QString>
|
||
|
#include "tableschema.h"
|
||
|
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
|
class Schema
|
||
|
{
|
||
|
class Schema {
|
||
|
public:
|
||
|
Schema();
|
||
|
~Schema();
|
||
|
};
|
||
|
protected:
|
||
|
virtual QList<QString> findTableNames(QString schema = "");
|
||
|
virtual QList<QString> findUniqueIndexes(QString tableName);
|
||
|
virtual TableSchema findConstraints(TableSchema ts);
|
||
|
virtual QString getCreateTableSql(TableSchema ts);
|
||
|
virtual bool findColumns(TableSchema ts);
|
||
|
|
||
|
};
|
||
|
}
|
||
|
#endif // SCHEMA_H
|
||
| src/schema.h.autosave | ||
|---|---|---|
|
#ifndef SCHEMA_H
|
||
|
#define SCHEMA_H
|
||
|
#include <QString>
|
||
|
#include "tableschema.h"
|
||
|
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
|
class Schema {
|
||
|
public:
|
||
|
Schema();
|
||
|
~Schema();
|
||
|
protected:
|
||
|
virtual QList<QString> findTableNames(QString schema = "");
|
||
|
virtual QList<QString> findUniqueIndexes(QString tableName);
|
||
|
virtual TableSchema findConstraints(TableSchema ts);
|
||
|
virtual QString getCreateTableSql(TableSchema ts);
|
||
|
virtual bool findColumns(TableSchema ts);
|
||
|
|
||
|
|
||
|
};
|
||
|
}
|
||
|
#endif // SCHEMA_H
|
||
| src/schema/sqliteschema.cpp | ||
|---|---|---|
|
#include "sqliteschema.h"
|
||
|
|
||
|
SqliteSchema::SqliteSchema() : parent() {
|
||
|
|
||
|
}
|
||
|
|
||
|
SqliteSchema::~SqliteSchema()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
QString Database::sqliteTableList() {
|
||
|
return "SELECT tbl_name FROM sqlite_master WHERE type='table';";
|
||
|
}
|
||
| src/schema/sqliteschema.h | ||
|---|---|---|
|
#ifndef SQLITESCHEMA_H
|
||
|
#define SQLITESCHEMA_H
|
||
|
|
||
|
#include "../schema.h"
|
||
|
namespace CuteEntityManager {
|
||
|
class SqliteSchema : public Schema {
|
||
|
public:
|
||
|
SqliteSchema();
|
||
|
~SqliteSchema();
|
||
|
};
|
||
|
}
|
||
|
#endif // SQLITESCHEMA_H
|
||
| src/tableschema.cpp | ||
|---|---|---|
|
#include "tableschema.h"
|
||
|
|
||
|
TableSchema::TableSchema()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
TableSchema::~TableSchema()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
| src/tableschema.h | ||
|---|---|---|
|
#ifndef TABLESCHEMA_H
|
||
|
#define TABLESCHEMA_H
|
||
|
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
|
class TableSchema {
|
||
|
public:
|
||
|
TableSchema();
|
||
|
~TableSchema();
|
||
|
};
|
||
|
|
||
|
}
|
||
|
#endif // TABLESCHEMA_H
|
||
| src/tableschema.h.autosave | ||
|---|---|---|
|
#ifndef TABLESCHEMA_H
|
||
|
#define TABLESCHEMA_H
|
||
|
|
||
|
namespace CuteEntityManager {
|
||
|
|
||
|
class TableSchema {
|
||
|
public:
|
||
|
TableSchema();
|
||
|
~TableSchema();
|
||
|
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|
||
|
#endif // TABLESCHEMA_H
|
||
Auch abrufbar als: Unified diff
some stuff