Go to file
Hamed Masafi 136c393f6e #36 misspelling of "foreign" [skip ci] 2019-06-19 14:06:49 +04:30
3rdparty serializer updated to latest version [skip ci] 2019-06-19 11:27:49 +04:30
doc minor polish 2018-01-09 16:34:21 +03:30
include Merge branch 'dev' into wip/shared_pointer 2019-06-19 11:31:46 +04:30
src #36 misspelling of "foreign" [skip ci] 2019-06-19 14:06:49 +04:30
test Merge branch 'master' into dev 2019-06-19 11:37:43 +04:30
.gitignore data types test 2019-01-20 19:59:54 +03:30
.gitmodules wip:serializer 2019-02-07 19:22:57 +03:30
.travis.yml travis test 2019-06-08 16:46:25 +04:30
Doxyfile readme changes 2016-06-10 12:44:31 +04:30
LICENSE Initial commit 2016-03-09 11:05:49 +03:30
README.md fix licance badget url [skip ci] 2019-03-09 19:39:33 +03:30
appveyor.yml wip: phrases polish 2018-02-17 19:14:39 +03:30
btc-qr.png add donate button in readme [skip ci] 2018-10-15 18:05:40 +03:30
ci-test-init.pri wip: remove unneeded TableModel creation 2019-06-05 00:45:30 +04:30
nut-dynamic.pro created dynamic creation pro file [skip ci] 2019-02-28 13:08:28 +03:30
nut.pri working :-( [skip ci] 2019-06-18 20:07:03 +04:30
nut.pro initial 2019-06-18 18:10:40 +04:30
nut.qbs qbs file fixed 2018-07-14 17:07:53 +04:30
nut.qdocconf order phrase completed 2016-06-05 16:52:26 +04:30

README.md

Nut

Build result

Branch Status
master Build Status
dev Build Status

GitLicense

CodacyBadge

Advanced, Powerful and easy to use ORM for Qt5

Features:

  • Easy to use
  • Support PosgtreSQL, MySQL, SQLite and Microsoft Sql Server
  • Automatically create and update database
  • IDE auto complete support, No hard-code nedded
  • Table join detect
  • Supported types:
Type Sqlite MySql Postgresql Ms Sql server
QBitArray BLOB VARBINARY BYTEA VARBINARY (MAX)
QByteArray BLOB BLOB BYTEA VARBINARY (MAX)
QChar NCHAR(1) CHAR(1) CHAR(1) CHAR(1)
QColor TEXT TEXT TEXT TEXT
QDate DATE DATE DATE DATE
QDateTime DATETIME DATETIME TIMESTAMP DATETIME
QJsonArray TEXT TEXT JSON TEXT
QJsonDocument TEXT TEXT JSON TEXT
QJsonObject TEXT TEXT JSON TEXT
QJsonValue TEXT TEXT JSON TEXT
QLine TEXT TEXT LINE TEXT
QLineF TEXT TEXT LINE TEXT
QPoint TEXT POINT POINT GEOMETRY
QPointF TEXT POINT POINT GEOMETRY
QPolygon TEXT POLYGON POLYGON TEXT
QPolygonF TEXT POLYGON POLYGON TEXT
QRect TEXT TEXT BOX TEXT
QRectF TEXT TEXT BOX TEXT
QSize TEXT TEXT TEXT TEXT
QSizeF TEXT TEXT TEXT TEXT
QString TEXT TEXT TEXT NVARCHAR(MAX)
QStringList TEXT1 TEXT TEXT[] TEXT
QTime TIME TIME TIME TIME
QUrl TEXT TEXT TEXT TEXT
QUuid TEXT VARCHAR(64) UUID UNIQUEIDENTIFIER
bool BOOLEAN BOOLEAN BOOLEAN BIT
char TINYINT CHAR(1) CHAR(1) CHAR(1)
double DOUBLE REAL REAL REAL
float FLOAT FLOAT FLOAT FLOAT(24)
int INT INT INTEGER INT
long MEDIUMINT BIGINT BIGINT BIGINT
qlonglong BIGINT BIGINT BIGINT BIGINT
qulonglong BIGINT UNSIGNED BIGINT BIGINT BIGINT
short SMALLINT SMALLINT SMALLINT SMALLINT
signed char TINYINT TINYINT SMALLINT TINYINT
uchar TINYINT UNSIGNED TINYINT SMALLINT TINYINT
uint INT UNSIGNED INT INTEGER INT
ulong MEDIUMINT UNSIGNED BIGINT BIGINT BIGINT
ushort SMALLINT UNSIGNED SMALLINT SMALLINT SMALLINT

Sample Codes

Read data from database:

auto q = db.posts()->createQuery();
q->setWhere(Post::idField() == postId);
auto posts = q->toList();
// now posts is a QList<Post*> contain all posts in
//  database that has id equal to postId variable
auto post = q->first();
// post is first row in database that its id is equal to postId

Adding to database:

Post *newPost = new Post;
newPost->setTitle("post title");

db.posts()->append(newPost);

for(int i = 0 ; i < 3; i++){
    Comment *comment = new Comment;
    comment->setMessage("comment #" + QString::number(i));

    newPost->comments()->append(comment);
}
db.saveChanges();

Modify database data:

auto q = db.posts()->createQuery();
q->setWhere(Post::idField() == postId);
Post *post = q->first();

if(post) {
    post->setTitle("new name");
    db.saveChanges();
} else {
    qWarning("No post found!");
}

Donate

Butcoin address: 1Dn1WHKkaxanXe4cTGDk4cFRRABxLUpEVj

Wallet addresst

For more information read Wiki.


  1. Using internal store/restore serialization ↩︎