Improve column order. Add log on open action. Clean files.

This commit is contained in:
Christian P. MOMON 2013-09-06 00:39:18 +02:00
parent 7709d3b442
commit a84a4ca321
6 changed files with 87 additions and 80 deletions

View file

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit! #Build Number for ANT. Do not edit!
#Sat Aug 24 15:54:52 CEST 2013 #Tue Sep 03 00:05:56 CEST 2013
build.number=1 build.number=2

View file

@ -1,12 +1,6 @@
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00"; SET time_zone = "+00:00";
--
-- Base de données: `sikevadb-kiwa`
--
CREATE DATABASE IF NOT EXISTS `sikevadb-test` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
USE `sikevadb-kiwa`;
-- -------------------------------------------------------- -- --------------------------------------------------------
-- --
@ -15,14 +9,16 @@ USE `sikevadb-kiwa`;
DROP TABLE IF EXISTS `elements`; DROP TABLE IF EXISTS `elements`;
CREATE TABLE IF NOT EXISTS `elements` ( CREATE TABLE IF NOT EXISTS `elements` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TOPKEY` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `TOPKEY` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`SUBKEY` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `SUBKEY` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`VALUE` longtext COLLATE utf8_unicode_ci,
`SIZE` int(11) NOT NULL DEFAULT '0', `SIZE` int(11) NOT NULL DEFAULT '0',
`DIGEST` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `DIGEST` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`CREATION_DATE` date NOT NULL, `CREATION_DATE` datetime NOT NULL,
`EDITION_DATE` date NOT NULL, `EDITION_DATE` datetime NOT NULL,
`ARCHIVE_DATE` date DEFAULT NULL, `ARCHIVE_DATE` datetime DEFAULT NULL,
`VALUE` longtext COLLATE utf8_unicode_ci, PRIMARY KEY (`ID`),
PRIMARY KEY (`TOPKEY`), KEY `XKEYINDEX` (`TOPKEY`,`SUBKEY`),
KEY `XKEYINDEX` (`TOPKEY`,`SUBKEY`) KEY `TOPKEYINDEX` (`TOPKEY`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

View file

@ -29,6 +29,8 @@ import javax.naming.NamingException;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.StringList; import fr.devinsy.util.StringList;
@ -38,6 +40,7 @@ import fr.devinsy.util.StringList;
* @author Christian P. Momon * @author Christian P. Momon
*/ */
public class SQLSikevaDB implements SikevaDB { public class SQLSikevaDB implements SikevaDB {
private static final Logger logger = LoggerFactory.getLogger(SQLSikevaDB.class);
private String driverClassname; private String driverClassname;
private String url; private String url;
private String login; private String login;
@ -584,7 +587,7 @@ public class SQLSikevaDB implements SikevaDB {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection statement = connection
.prepareStatement("SELECT TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE FROM elements WHERE TOPKEY=? ORDER BY ARCHIVE_DATE ASC"); .prepareStatement("SELECT TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM elements WHERE TOPKEY=? ORDER BY ARCHIVE_DATE ASC");
statement.setString(1, key); statement.setString(1, key);
resultSet = statement.executeQuery(); resultSet = statement.executeQuery();
@ -593,12 +596,12 @@ public class SQLSikevaDB implements SikevaDB {
Element element = new Element(); Element element = new Element();
element.setKey(resultSet.getString(1)); element.setKey(resultSet.getString(1));
element.setSubkey(resultSet.getString(2)); element.setSubkey(resultSet.getString(2));
element.setSize(resultSet.getLong(3)); element.setValue(resultSet.getString(3));
element.setDigest(resultSet.getString(4)); element.setSize(resultSet.getLong(4));
element.setCreationDate(dateToDate(resultSet.getDate(5))); element.setDigest(resultSet.getString(5));
element.setEditionDate(dateToDate(resultSet.getDate(6))); element.setCreationDate(dateToDate(resultSet.getDate(6)));
element.setArchiveDate(dateToDate(resultSet.getDate(7))); element.setEditionDate(dateToDate(resultSet.getDate(7)));
element.setValue(resultSet.getString(8)); element.setArchiveDate(dateToDate(resultSet.getDate(8)));
// //
result.add(element); result.add(element);
@ -634,7 +637,7 @@ public class SQLSikevaDB implements SikevaDB {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection statement = connection
.prepareStatement("SELECT TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE FROM elements WHERE TOPKEY=? AND SUBKEY=? ORDER BY ARCHIVE_DATE ASC"); .prepareStatement("SELECT TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM elements WHERE TOPKEY=? AND SUBKEY=? ORDER BY ARCHIVE_DATE ASC");
statement.setString(1, key); statement.setString(1, key);
statement.setString(2, subkey); statement.setString(2, subkey);
resultSet = statement.executeQuery(); resultSet = statement.executeQuery();
@ -644,12 +647,12 @@ public class SQLSikevaDB implements SikevaDB {
Element element = new Element(); Element element = new Element();
element.setKey(resultSet.getString(1)); element.setKey(resultSet.getString(1));
element.setSubkey(resultSet.getString(2)); element.setSubkey(resultSet.getString(2));
element.setSize(resultSet.getLong(3)); element.setValue(resultSet.getString(3));
element.setDigest(resultSet.getString(4)); element.setSize(resultSet.getLong(4));
element.setCreationDate(dateToDate(resultSet.getDate(5))); element.setDigest(resultSet.getString(5));
element.setEditionDate(dateToDate(resultSet.getDate(6))); element.setCreationDate(dateToDate(resultSet.getDate(6)));
element.setArchiveDate(dateToDate(resultSet.getDate(7))); element.setEditionDate(dateToDate(resultSet.getDate(7)));
element.setValue(resultSet.getString(8)); element.setArchiveDate(dateToDate(resultSet.getDate(8)));
// //
result.add(element); result.add(element);
@ -714,7 +717,7 @@ public class SQLSikevaDB implements SikevaDB {
try { try {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection.prepareStatement("SELECT DISTINCT SUBKEY FROM elements WHERE KEY=? ORDER BY CREATION_DATE ASC"); statement = connection.prepareStatement("SELECT DISTINCT SUBKEY FROM elements WHERE TOPKEY=? ORDER BY CREATION_DATE ASC");
statement.setString(1, key); statement.setString(1, key);
resultSet = statement.executeQuery(); resultSet = statement.executeQuery();
@ -924,7 +927,7 @@ public class SQLSikevaDB implements SikevaDB {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection statement = connection
.prepareStatement("SELECT TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE FROM elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY IS NULL"); .prepareStatement("SELECT TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY IS NULL");
statement.setString(1, key); statement.setString(1, key);
resultSet = statement.executeQuery(); resultSet = statement.executeQuery();
@ -934,12 +937,13 @@ public class SQLSikevaDB implements SikevaDB {
result = new Element(); result = new Element();
result.setKey(resultSet.getString(1)); result.setKey(resultSet.getString(1));
result.setSubkey(resultSet.getString(2)); result.setSubkey(resultSet.getString(2));
result.setSize(resultSet.getLong(3)); result.setValue(resultSet.getString(3));
result.setDigest(resultSet.getString(4)); result.setSize(resultSet.getLong(4));
result.setCreationDate(dateToDate(resultSet.getDate(5))); result.setDigest(resultSet.getString(5));
result.setEditionDate(dateToDate(resultSet.getDate(6))); result.setCreationDate(dateToDate(resultSet.getDate(6)));
result.setArchiveDate(dateToDate(resultSet.getDate(7))); result.setEditionDate(dateToDate(resultSet.getDate(7)));
result.setValue(resultSet.getString(8)); result.setArchiveDate(dateToDate(resultSet.getDate(8)));
} else { } else {
result = null; result = null;
} }
@ -977,7 +981,7 @@ public class SQLSikevaDB implements SikevaDB {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection statement = connection
.prepareStatement("SELECT TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE FROM elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY=?"); .prepareStatement("SELECT TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY=?");
statement.setString(1, key); statement.setString(1, key);
statement.setString(2, subkey); statement.setString(2, subkey);
resultSet = statement.executeQuery(); resultSet = statement.executeQuery();
@ -988,12 +992,12 @@ public class SQLSikevaDB implements SikevaDB {
result = new Element(); result = new Element();
result.setKey(resultSet.getString(1)); result.setKey(resultSet.getString(1));
result.setSubkey(resultSet.getString(2)); result.setSubkey(resultSet.getString(2));
result.setSize(resultSet.getLong(3)); result.setValue(resultSet.getString(3));
result.setDigest(resultSet.getString(4)); result.setSize(resultSet.getLong(4));
result.setCreationDate(dateToDate(resultSet.getDate(5))); result.setDigest(resultSet.getString(5));
result.setEditionDate(dateToDate(resultSet.getDate(6))); result.setCreationDate(dateToDate(resultSet.getDate(6)));
result.setArchiveDate(dateToDate(resultSet.getDate(7))); result.setEditionDate(dateToDate(resultSet.getDate(7)));
result.setValue(resultSet.getString(8)); result.setArchiveDate(dateToDate(resultSet.getDate(8)));
} else { } else {
result = null; result = null;
} }
@ -1030,7 +1034,7 @@ public class SQLSikevaDB implements SikevaDB {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection statement = connection
.prepareStatement("SELECT TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE FROM elements WHERE ARCHIVE_DATE IS NOT NULL AND TOPKEY=? ORDER BY CREATION_DATE ASC"); .prepareStatement("SELECT TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM elements WHERE ARCHIVE_DATE IS NOT NULL AND TOPKEY=? ORDER BY CREATION_DATE ASC");
statement.setString(1, key); statement.setString(1, key);
resultSet = statement.executeQuery(); resultSet = statement.executeQuery();
@ -1039,12 +1043,12 @@ public class SQLSikevaDB implements SikevaDB {
Element element = new Element(); Element element = new Element();
element.setKey(resultSet.getString(1)); element.setKey(resultSet.getString(1));
element.setSubkey(resultSet.getString(2)); element.setSubkey(resultSet.getString(2));
element.setSize(resultSet.getLong(3)); element.setValue(resultSet.getString(3));
element.setDigest(resultSet.getString(4)); element.setSize(resultSet.getLong(4));
element.setCreationDate(dateToDate(resultSet.getDate(5))); element.setDigest(resultSet.getString(5));
element.setEditionDate(dateToDate(resultSet.getDate(6))); element.setCreationDate(dateToDate(resultSet.getDate(6)));
element.setArchiveDate(dateToDate(resultSet.getDate(7))); element.setEditionDate(dateToDate(resultSet.getDate(7)));
element.setValue(resultSet.getString(8)); element.setArchiveDate(dateToDate(resultSet.getDate(8)));
// //
result.add(element); result.add(element);
@ -1080,7 +1084,7 @@ public class SQLSikevaDB implements SikevaDB {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection statement = connection
.prepareStatement("SELECT TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE FROM elements WHERE ARCHIVE_DATE IS NOT NULL AND TOPKEY=? AND SUBKEY=? ORDER BY CREATION_DATE ASC"); .prepareStatement("SELECT TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM elements WHERE ARCHIVE_DATE IS NOT NULL AND TOPKEY=? AND SUBKEY=? ORDER BY CREATION_DATE ASC");
statement.setString(1, key); statement.setString(1, key);
statement.setString(2, subkey); statement.setString(2, subkey);
resultSet = statement.executeQuery(); resultSet = statement.executeQuery();
@ -1090,12 +1094,12 @@ public class SQLSikevaDB implements SikevaDB {
Element element = new Element(); Element element = new Element();
element.setKey(resultSet.getString(1)); element.setKey(resultSet.getString(1));
element.setSubkey(resultSet.getString(2)); element.setSubkey(resultSet.getString(2));
element.setSize(resultSet.getLong(3)); element.setValue(resultSet.getString(3));
element.setDigest(resultSet.getString(4)); element.setSize(resultSet.getLong(4));
element.setCreationDate(dateToDate(resultSet.getDate(5))); element.setDigest(resultSet.getString(5));
element.setEditionDate(dateToDate(resultSet.getDate(6))); element.setCreationDate(dateToDate(resultSet.getDate(6)));
element.setArchiveDate(dateToDate(resultSet.getDate(7))); element.setEditionDate(dateToDate(resultSet.getDate(7)));
element.setValue(resultSet.getString(8)); element.setArchiveDate(dateToDate(resultSet.getDate(8)));
// //
result.add(element); result.add(element);
@ -1544,11 +1548,18 @@ public class SQLSikevaDB implements SikevaDB {
// //
if (this.url != null) { if (this.url != null) {
//
Class.forName(this.driverClassname).newInstance(); Class.forName(this.driverClassname).newInstance();
this.singleConnection = DriverManager.getConnection(this.url, this.login, this.password); this.singleConnection = DriverManager.getConnection(this.url, this.login, this.password);
logger.info("Single connection opened with [{}].", this.url);
} else if (this.contextName != null) { } else if (this.contextName != null) {
//
Context initialContext = new InitialContext(); Context initialContext = new InitialContext();
this.dataSource = (DataSource) initialContext.lookup(this.contextName); Context environmentContext = (Context) initialContext.lookup("java:comp/env");
this.dataSource = (DataSource) environmentContext.lookup(this.contextName);
logger.info("Database {} opened.", this.contextName);
} else { } else {
throw new IllegalArgumentException("Undefined source."); throw new IllegalArgumentException("Undefined source.");
} }
@ -1567,16 +1578,16 @@ public class SQLSikevaDB implements SikevaDB {
connection = getConnection(); connection = getConnection();
connection.setAutoCommit(true); connection.setAutoCommit(true);
statement = connection statement = connection
.prepareStatement("INSERT INTO elements (TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"); .prepareStatement("INSERT INTO elements (TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE) VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
statement.setString(1, element.getKey()); statement.setString(1, element.getKey());
statement.setString(2, element.getSubkey()); statement.setString(2, element.getSubkey());
statement.setLong(3, element.getSize()); statement.setString(3, element.getValue());
statement.setString(4, element.getDigest()); statement.setLong(4, element.getSize());
statement.setDate(5, dateToDate(element.getCreationDate())); statement.setString(5, element.getDigest());
statement.setDate(6, dateToDate(element.getEditionDate())); statement.setDate(6, dateToDate(element.getCreationDate()));
statement.setDate(7, dateToDate(element.getArchiveDate())); statement.setDate(7, dateToDate(element.getEditionDate()));
statement.setString(8, element.getValue()); statement.setDate(8, dateToDate(element.getArchiveDate()));
statement.executeUpdate(); statement.executeUpdate();
@ -1627,16 +1638,16 @@ public class SQLSikevaDB implements SikevaDB {
// Insert new version of the element. // Insert new version of the element.
statement.clearParameters(); statement.clearParameters();
statement = connection statement = connection
.prepareStatement("INSERT INTO elements (TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"); .prepareStatement("INSERT INTO elements (TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE) VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
statement.setString(1, element.getKey()); statement.setString(1, element.getKey());
statement.setString(2, element.getSubkey()); statement.setString(2, element.getSubkey());
statement.setLong(3, element.getSize()); statement.setString(3, element.getValue());
statement.setString(4, element.getDigest()); statement.setLong(4, element.getSize());
statement.setDate(5, dateToDate(element.getCreationDate())); statement.setString(5, element.getDigest());
statement.setDate(6, dateToDate(element.getEditionDate())); statement.setDate(6, dateToDate(element.getCreationDate()));
statement.setDate(7, dateToDate(element.getArchiveDate())); statement.setDate(7, dateToDate(element.getEditionDate()));
statement.setString(8, element.getValue()); statement.setDate(8, dateToDate(element.getArchiveDate()));
statement.executeUpdate(); statement.executeUpdate();
@ -1697,16 +1708,16 @@ public class SQLSikevaDB implements SikevaDB {
// Insert new version of the element. // Insert new version of the element.
statement.clearParameters(); statement.clearParameters();
statement = connection statement = connection
.prepareStatement("INSERT INTO elements (TOPKEY,SUBKEY,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE,VALUE) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"); .prepareStatement("INSERT INTO elements (TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE) VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
statement.setString(1, element.getKey()); statement.setString(1, element.getKey());
statement.setString(2, element.getSubkey()); statement.setString(2, element.getSubkey());
statement.setLong(3, element.getSize()); statement.setString(3, element.getValue());
statement.setString(4, element.getDigest()); statement.setLong(4, element.getSize());
statement.setDate(5, dateToDate(element.getCreationDate())); statement.setString(5, element.getDigest());
statement.setDate(6, dateToDate(element.getEditionDate())); statement.setDate(6, dateToDate(element.getCreationDate()));
statement.setDate(7, dateToDate(element.getArchiveDate())); statement.setDate(7, dateToDate(element.getEditionDate()));
statement.setString(8, element.getValue()); statement.setDate(8, dateToDate(element.getArchiveDate()));
statement.executeUpdate(); statement.executeUpdate();