Mise à jour ORM + Utilisation plus simple des logs

- toute la base de données fonctionne en utf8mb4
- Le PlayerFinder gère l'historique des pseudos
- Fin de l'utilisation de l'ancien ORM
This commit is contained in:
2016-07-12 19:26:49 +02:00
parent 159cbe52af
commit b2a19e09c1
39 changed files with 977 additions and 361 deletions

View File

@@ -1,54 +0,0 @@
package fr.pandacube.java.util.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
Connection conn;
private String url;
private String login;
private String pass;
public DBConnection(String host, int port, String dbname, String l, String p) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://"+host+":"+port+"/"+dbname;
login = l;
pass = p;
conn = DriverManager.getConnection(url, login, pass);
}
public void reconnectIfNecessary() throws SQLException
{
try
{
Statement stmt = conn.createStatement();
stmt.close();
}
catch(SQLException e)
{
close();
conn = DriverManager.getConnection(url, login, pass);
}
}
public Connection getConnection() throws SQLException
{
if (!conn.isValid(1))
reconnectIfNecessary();
return conn;
}
public void close() {
try {
conn.close();
} catch (Exception e) { }
}
}

View File

@@ -4,6 +4,8 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import fr.pandacube.java.util.db2.sql_tools.DBConnection;
/**
* <b>ORM = Object-Relational Mapping</b><br/>
* Liste des tables avec leur classes :

View File

@@ -8,6 +8,8 @@ import java.sql.Statement;
import org.apache.commons.lang.StringUtils;
import fr.pandacube.java.util.db2.sql_tools.DBConnection;
public abstract class SQLElement {
DBConnection db = ORM.connection;
@@ -40,7 +42,7 @@ public abstract class SQLElement {
try {
Connection conn;
conn = db.getConnection();
conn = db.getNativeConnection();
String[] fields = getFieldsName(), values = getValues();
@@ -118,7 +120,7 @@ public abstract class SQLElement {
try {
if (saved)
{ // supprimer la ligne de la base
PreparedStatement st = db.getConnection().prepareStatement("DELETE FROM "+tableName+" WHERE id="+id);
PreparedStatement st = db.getNativeConnection().prepareStatement("DELETE FROM "+tableName+" WHERE id="+id);
try {
st.executeUpdate();
saved = false;

View File

@@ -6,6 +6,8 @@ import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import fr.pandacube.java.util.db2.sql_tools.DBConnection;
public abstract class SQLTable<T extends SQLElement> {
DBConnection db = ORM.connection;
@@ -24,7 +26,7 @@ public abstract class SQLTable<T extends SQLElement> {
private void createTable() throws SQLException {
Statement stmt = db.getConnection().createStatement();
Statement stmt = db.getNativeConnection().createStatement();
String sql = "CREATE TABLE IF NOT EXISTS "+tableName+" " +
"("+createTableParameters()+")";
try {
@@ -39,7 +41,7 @@ public abstract class SQLTable<T extends SQLElement> {
ResultSet set = null;
boolean exist = false;
try {
set = db.getConnection().getMetaData().getTables(null, null, tableName, null);
set = db.getNativeConnection().getMetaData().getTables(null, null, tableName, null);
exist = set.next();
} finally {
if (set != null)
@@ -77,7 +79,7 @@ public abstract class SQLTable<T extends SQLElement> {
public T get(int id) throws SQLException {
T elementInstance = null;
Statement stmt = db.getConnection().createStatement();
Statement stmt = db.getNativeConnection().createStatement();
try {
String sql = "SELECT * FROM "+tableName+" WHERE id = "+id+";";
@@ -109,7 +111,7 @@ public abstract class SQLTable<T extends SQLElement> {
public List<T> getAll(String where, String orderBy, Integer limit, Integer offset) throws SQLException {
Statement stmt = db.getConnection().createStatement();
Statement stmt = db.getNativeConnection().createStatement();
String sql = "SELECT * FROM "+tableName;
if (where != null)

View File

@@ -0,0 +1,2 @@
@java.lang.Deprecated
package fr.pandacube.java.util.db;