2009-01-20 24 views
8

Je me demande quel genre de solutions de persistance sont là pour C++ avec une base de données SQL? En plus de faire des choses avec du SQL personnalisé (et d'encapsuler l'accès aux DAO ou quelque chose de similaire), existe-t-il d'autres solutions (plus générales)?Solutions de persistance pour C++ (avec une base de données SQL)?

Comme certaines bibliothèques générales ou frameworks (quelque chose comme Hibernate & co pour Java et .NET) ou autre chose? (Quelque chose que je n'avais même pas pensé peut être le bienvenu)

EDIT: Oui, je cherchais plutôt une solution ORM ou quelque chose de similaire pour gérer les requêtes sql et les relations entre les tables et les objets que pour le moteur de DB lui-même. Merci pour toutes les réponses de toute façon!

Répondre

5

Il semble que vous soyez à la recherche d'ORM pour ne pas avoir à vous préoccuper du code SQL écrit à la main.

Il existe un article here qui décrit les solutions ORM pour C++.

Vous n'avez pas non plus mentionné le type d'application que vous écrivez, s'il s'agit d'une application de bureau, d'une application mobile ou d'une application serveur. Mobile: Il est préférable d'utiliser SQLite comme moteur de base de données, car il peut être intégré et avoir un faible encombrement. Application de bureau: Vous devriez toujours envisager d'utiliser SQLite ici, mais vous avez également la possibilité avec la plupart des applications de bureau d'avoir une connexion permanente à Internet, auquel cas vous voudrez peut-être fournir un serveur réseau pour cette tâche. Je suggère d'utiliser Apache + MySQL + PHP et d'utiliser un ORM léger tel que Outlet ORM, puis d'utiliser les appels postaux HTTP standard pour accéder à vos ressources. App Serveur: Vous avez beaucoup plus d'options ici mais je suggère toujours d'utiliser Apache + MySQL + PHP + ORM parce que je trouve qu'il est beaucoup plus facile de maintenir cette couche dans un langage de script que dans C++.

+0

J'aurais dû trouver ce fil mais pas .. Merci! – Touko

+0

Le lien sur les solutions ORM pour C++ est mort. – Banjocat

7

SQLite c'est génial: c'est rapide, stable, éprouvé et facile à utiliser et à intégrer.

Il y a aussi Metakit bien que la courbe d'apprentissage soit un peu raide. Mais je l'ai utilisé avec succès dans un projet professionnel.

+1

Vous avez oublié une chose importante: SQLIte est gratuit lorsqu'il est utilisé à d'autres fins. – sharptooth

0

J'utilise MYSQL ou SQLite. MYSQL: Fournit un DB basé sur le serveur auquel votre application doit se connecter dynamiquement.
SQLite: Fournit une base de données ou une base de données. L'utilisation du DB en mémoire est utile pour un développement rapide car la configuration et la configuration d'un serveur DB pour un seul projet est une tâche importante. Mais une fois que vous avez un serveur DB opérationnel, il est tout aussi facile de poursuivre en justice.

En mémoire DB est utile pour contenir un petit DB tel que la configuration, etc. Alors que pour les ensembles de données plus volumineux, un serveur DB est probablement plus pratique.

télécharger ici: http://dev.mysql.com/
télécharger ici: http://www.sqlite.org/

1

MySQL Connector/C++ est une implémentation C++ de JDBC 4.0

Les clients de référence qui utilisent MySQL Connector/C++ sont: - OpenOffice - MySQL Workbench

En savoir plus: http://forums.mysql.com/read.php?167,221298

1

SQLite + Hiberlite est un projet agréable et prometteur. mais j'espère le voir plus activement développé. voir http: // code.google.com/p/hiberlite/

Questions connexes