boolean tableUtilisateurExist = oracleIsTableExists("AUTH_UTILISATEUR",connection);
if (! tableUtilisateurExist) {
JdbcUtils.executeUpdate(connection, "CREATE TABLE AUTH_UTILISATEUR (UTI_ID int not null, UTI_LOGIN varchar(50) not null, UTI_PASSWORD varchar(50), UTI_PRENOM varchar(50), UTI_NOM varchar(50), UTI_ACTIF int not null, UTI_ALL_FONC int not null, UTI_ALL_DOC int not null, UTI_ALL_COL int not null, constraint pk_AUTH_UTILISATEUR primary key (UTI_ID))");
+ JdbcUtils.executeUpdate(connection, "CREATE SEQUENCE SQ_AUTH_UTILISATEURS START WITH 1 INCREMENT BY 1 NOMAXVALUE");
}
if(!oracleIsTableExists("AUTH_UTI_PRF",connection))
JdbcUtils.executeUpdate(connection, "CREATE TABLE AUTH_UTI_PRF( UTI_ID int not null, PRF_CODE varchar(20) not null, constraint pk_AUTH_UTI_PRF primary key (UTI_ID, PRF_CODE))");
static public void createUser(Connection connection, long id, String login, String password, String prenom, String nom, boolean allowedToAllFonctionnalites, boolean allowedToAllDocuments, boolean allowedToAllCollectivites, String codesProfil[]) throws SQLException {
JdbcUtils.executeUpdate(connection,
- "INSERT INTO AUTH_UTILISATEUR (UTI_ID, UTI_LOGIN, UTI_PASSWORD, UTI_PRENOM, UTI_NOM, UTI_ALL_FONC, UTI_ALL_DOC, UTI_ALL_COL, UTI_ACTIF) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
- new SimplePStmtBinderBuilder().add(id).add(login).add(password).add(prenom).add(nom).add(allowedToAllFonctionnalites).add(allowedToAllDocuments).add(allowedToAllCollectivites).add(1).toPStmtBinder());
+ "INSERT INTO AUTH_UTILISATEUR (UTI_ID, UTI_LOGIN, UTI_PASSWORD, UTI_PRENOM, UTI_NOM, UTI_ALL_FONC, UTI_ALL_DOC, UTI_ALL_COL, UTI_ACTIF) VALUES (SQ_AUTH_UTILISATEURS, ?, ?, ?, ?, ?, ?, ?, ?)",
+ new SimplePStmtBinderBuilder().add(login).add(password).add(prenom).add(nom).add(allowedToAllFonctionnalites).add(allowedToAllDocuments).add(allowedToAllCollectivites).add(1).toPStmtBinder());
if (codesProfil != null) {
for (String codeProfil : codesProfil) {
JdbcUtils.executeUpdate(connection,
ps.setLong(8,user.getId());
ps.executeUpdate();
} else {
- ps = con.prepareStatement("INSERT INTO AUTH_UTILISATEUR (UTI_LOGIN,UTI_NOM,UTI_PRENOM,UTI_ALL_FONC,UTI_ALL_DOC,UTI_ALL_COL,UTI_PASSWORD,UTI_ACTIF) VALUES (?,?,?,?,?,?,?,1)");
- ps.setString(1, user.getLogin());
- ps.setString(2, user.getNom());
- ps.setString(3,user.getPrenom());
- ps.setInt(4, user.isAllFonctionalities()?1:0);
- ps.setInt(5, user.isAlldocuments()?1:0);
- ps.setInt(6, user.isAllCollectivites()?1:0);
- ps.setString(7, password);
- ps.executeUpdate();
- ps.close();
- ps = con.prepareStatement("SELECT MAX(UTI_ID) FROM AUTH_UTILISATEUR WHERE UTI_LOGIN=?");
- ps.setString(1,user.getLogin());
- ResultSet rs = ps.executeQuery();
- if(rs.next()) user.setId(rs.getLong(1));
+ if(con.getMetaData().getURL().toLowerCase().contains(":mysql:")) {
+ ps = con.prepareStatement("INSERT INTO AUTH_UTILISATEUR (UTI_LOGIN,UTI_NOM,UTI_PRENOM,UTI_ALL_FONC,UTI_ALL_DOC,UTI_ALL_COL,UTI_PASSWORD,UTI_ACTIF) VALUES (?,?,?,?,?,?,?,1)");
+ ps.setString(1, user.getLogin());
+ ps.setString(2, user.getNom());
+ ps.setString(3,user.getPrenom());
+ ps.setInt(4, user.isAllFonctionalities()?1:0);
+ ps.setInt(5, user.isAlldocuments()?1:0);
+ ps.setInt(6, user.isAllCollectivites()?1:0);
+ ps.setString(7, password);
+ ps.executeUpdate();
+ ps.close();
+ ps = con.prepareStatement("SELECT MAX(UTI_ID) FROM AUTH_UTILISATEUR WHERE UTI_LOGIN=?");
+ ps.setString(1,user.getLogin());
+ ResultSet rs = ps.executeQuery();
+ if(rs.next()) user.setId(rs.getLong(1));
+ } else {
+ // on récupère une valeur de la sequence
+ ResultSet rs = con.createStatement().executeQuery("select SQ_AUTH_UTILISATEURS.NEXTVAL from DUAL");
+ rs.next();
+ long userId = rs.getLong(1);
+ ps = con.prepareStatement("INSERT INTO AUTH_UTILISATEUR (UTI_ID, UTI_LOGIN,UTI_NOM,UTI_PRENOM,UTI_ALL_FONC,UTI_ALL_DOC,UTI_ALL_COL,UTI_PASSWORD,UTI_ACTIF) VALUES (?,?,?,?,?,?,?,?,1)");
+ int i=1;
+ ps.setLong(i++, userId);
+ ps.setString(i++, user.getLogin());
+ ps.setString(i++, user.getNom());
+ ps.setString(i++, user.getPrenom());
+ ps.setInt(i++, user.isAllFonctionalities()?1:0);
+ ps.setInt(i++, user.isAlldocuments()?1:0);
+ ps.setInt(i++, user.isAllCollectivites()?1:0);
+ ps.setString(i++, password);
+ ps.executeUpdate();
+ ps.close();
+ user.setId(userId);
+ }
}
} catch(SQLException sqlEx) {
logger.error("saveUser(StdUser,String)",sqlEx);