Ich versuche PRAGMA foreign_key = ON zu setzen; in SQLite-Datenbank. Ich code einige Software in Java mit JDBC-Treiber für SQLite, dieses: http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC.SQLite JDBC PRAGMA Einstellung
Ich verwende auch Verbindungspooling, um Abfragen für DB zu beschleunigen. Ich verwende diese Bibliothek: http://commons.apache.org/dbcp/.
Bis zu diesem Punkt ist alles gut. Jetzt muss ich PRAGMA einstellen, konkret PRAGMA foreign_key = ON; vor dem Erstellen von Tabellen, weil ich über die Konsistenz zwischen einigen Spalten in db sicher sein muss.
Wenn ich DB erstelle, wird er automatisch auf OFF gesetzt. Also muss ich es einschalten, um es zu benutzen.
Aber ich weiß nicht, wie es zu tun, so wie ich poolable Datenquelle vorbereite ist wie folgt:
public static DataSource getDataSource(String connectURI) {
GenericObjectPool connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory =
new DriverManagerConnectionFactory(connectURI, null);
PoolableConnectionFactory poolableConnectionFactory =
new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
DataSource dataSource = new PoolingDataSource(connectionPool);
return dataSource;
}
Aber ich weiß nicht, wie das Pragma richtig zu setzen, ich, dass diese gefunden möglich ist:
SQLiteConfig config = new SQLiteConfig();
config.enforceForeignKeys(true);
Aber ich weiß nicht, wie es mit diesem poolable heikel Einstellungen ...
Irgendwelche Ideen in Verbindung zu benutzen?
Diese [link] [1] könnte hilfreich sein. [1]: http://code-know-how.blogspot.ru/2011/10/how-to-enable-foreign-keys-in-sqlite3.html – Marco167