package org.jabref.shared;
import java.sql.SQLException;
/**
* Processes all incoming or outgoing bib data to MySQL Database and manages its structure.
*/
public class MySQLProcessor extends DBMSProcessor {
public MySQLProcessor(DBMSConnection connection) {
super(connection);
}
/**
* Creates and sets up the needed tables and columns according to the database type.
*
* @throws SQLException
*/
@Override
public void setUp() throws SQLException {
connection.createStatement().executeUpdate(
"CREATE TABLE IF NOT EXISTS `ENTRY` (" +
"`SHARED_ID` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, " +
"`TYPE` VARCHAR(255) NOT NULL, " +
"`VERSION` INT(11) DEFAULT 1)");
connection.createStatement().executeUpdate(
"CREATE TABLE IF NOT EXISTS `FIELD` (" +
"`ENTRY_SHARED_ID` INT(11) NOT NULL, " +
"`NAME` VARCHAR(255) NOT NULL, " +
"`VALUE` TEXT DEFAULT NULL, " +
"FOREIGN KEY (`ENTRY_SHARED_ID`) REFERENCES `ENTRY`(`SHARED_ID`) ON DELETE CASCADE)");
connection.createStatement().executeUpdate(
"CREATE TABLE IF NOT EXISTS `METADATA` (" +
"`KEY` varchar(255) NOT NULL," +
"`VALUE` text NOT NULL)");
}
@Override
String escape(String expression) {
return "`" + expression + "`";
}
}