• [^] # Re: SQLite est peut-être en C++, mais a un driver JDBC

    Posté par (site web personnel) . En réponse au journal Petit bench de bases de données embarquées. Évalué à 1.

    non, effectivement je n'y avais pas pensé;
    mais tu sais un peu comment ça s'utilise ? Visiblement il faut s'inscrire pour accèder aux forums...
    Je te demande parce que voilà les résultats :

    -------------------------------- db40 ----------------------------------
    17 doublons, 200 ajoutés, nombre de boucles :218
    temps total : 7140ms
    temps moyen : 32.75229357798165ms


    et c'est pas top top...

    et voilà le code source (j'ai pas accès au ftp d'où je suis pour mettre à jour l'archive)


    package dup.dbengines;

    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Date;

    import com.db4o.Db4o;
    import com.db4o.ObjectContainer;
    import com.db4o.ObjectSet;

    import dup.CheckDup;

    public class Db4oCheckDup extends CheckDup {

    class Dup {
    private byte[] digest ;
    private Long date_insert ;

    public Dup(byte [] digest) {
    this.digest = digest ;
    this.date_insert = null ;
    }

    public Dup(byte [] digest,long date_insert) {
    this.digest = digest ;
    this.date_insert = new Long(date_insert) ;
    }

    public long getDatedate_insert() {
    return date_insert!=null?date_insert.longValue():0 ;
    }
    public byte[] getDigest() {
    return digest;
    }

    }

    public static final String DB_ENGINE_NAME = "db40" ;

    private ObjectContainer db=Db4o.openFile(DB_ENGINE_NAME);

    public Connection openConnection() throws ClassNotFoundException,
    SQLException {
    return null;
    }

    public void shutdown() throws SQLException {
    }

    public synchronized void beginTransaction() throws SQLException {

    }

    public synchronized void commit() throws SQLException {
    db.commit() ;
    }

    public synchronized void rollback() throws SQLException {
    db.rollback() ;
    }

    public void closeConnection() throws SQLException {
    db.close() ;
    }

    public synchronized boolean isDup(byte[] digest) throws SQLException {
    Dup d = new Dup(digest) ;
    ObjectSet result=db.get(d);
    return result.size() > 0 ;

    }

    public synchronized void add(byte[] digest) throws SQLException {
    Dup d = new Dup(digest, new Date().getTime()) ;
    db.set(d) ;
    }

    public synchronized void createTableDup() throws SQLException {
    }

    public synchronized void dropTableDup() throws SQLException {
    }

    public synchronized void purge() throws SQLException {
    }


    }