Search in sources :

Example 6 with LineOfData

use of mom.trd.opentheso.core.exports.privatesdatas.LineOfData in project opentheso by miledrousset.

the class importxml method insertLine2.

/**
 * cette funtion permet de faire la inyection a la BDD line par line de la table "nomtable"
 * et le données que ils sont dans une ArrayList
 * Cette funtion c'est la generique;
 * @param ds
 * @param table
 * @param nomtable
 */
private void insertLine2(HikariDataSource ds, ArrayList<LineOfData> table, String nomtable) throws ClassNotFoundException, SQLException {
    Statement stmt;
    String nomcolun = "";
    String values = "";
    boolean first = true;
    Connection con = ds.getConnection();
    String temp = "";
    for (LineOfData lineOfData : table) {
        if (!first) {
            nomcolun += ",";
            values += ",";
        }
        // nomcolun contiens toutes les camps de la table "nomtable"
        nomcolun += lineOfData.getColomne();
        // contiens toutes les values de la memme ligne
        values += "'" + lineOfData.getValue() + "'";
        first = false;
    }
    values += ");";
    try {
        stmt = con.createStatement();
        try {
            // récupération des noms des colonnes de la table
            String query = "INSERT INTO " + nomtable + " ( " + nomcolun + ") VALUES (" + values;
            temp = query;
            stmt.executeUpdate(query);
        } finally {
            stmt.close();
            con.close();
        }
    } catch (SQLException ex) {
        Logger.getLogger(Table.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println(temp);
    }
}
Also used : Table(mom.trd.opentheso.core.exports.privatesdatas.tables.Table) SQLException(java.sql.SQLException) Statement(java.sql.Statement) LineOfData(mom.trd.opentheso.core.exports.privatesdatas.LineOfData) Connection(java.sql.Connection)

Example 7 with LineOfData

use of mom.trd.opentheso.core.exports.privatesdatas.LineOfData in project opentheso by miledrousset.

the class importxml method ouvreFichier.

/*  
        for (Table user : DataTable) {
            for (LineOfData lineOfData : user.getLineOfDatas()) {
                writeLine(lineOfData.getColomne(), lineOfData.getValue());
            }
     */
/*
    public void choisirfichier (HikariDataSource ds){
        JFileChooser fileChooser = new JFileChooser();
        int seleccion = fileChooser.showOpenDialog(null);
        fichero = fileChooser.getSelectedFile();
               //Acciones que se quieran realizar
        ouvreFichier();
       
    }*/
/**
 * cette funtion permet de ouvrir un fichier pour comencée a faire une
 * injection de données.
 * C'est seulement pour la creation de un nouvelle BDD.
 * la funtion generique est plus ba
 * @param con
 * @param archive
 * @throws ClassNotFoundException
 * @throws SQLException
 */
public void ouvreFichier(Connection con, File archive) throws ClassNotFoundException, SQLException {
    LanguageBean langueBean = new LanguageBean();
    SAXBuilder builder = new SAXBuilder();
    ArrayList<Table> toutTables = new ArrayList<>();
    ArrayList<LineOfData> lineOfDatas = new ArrayList<>();
    try {
        // on crée le document a partir du fichier que on a selectioné
        Document document = (Document) builder.build(archive);
        // Se obtiene la raiz 'tables'
        Element rootNode = document.getRootElement();
        // ici on a toutes les tables (les enfants de la racine)
        List list = rootNode.getChildren("table");
        // ici on fait le tour pour les enfants de 'tables'
        for (int i = 0; i < list.size(); i++) {
            // ici on a la première table
            Element tabla = (Element) list.get(i);
            // ici on a le nom de la table
            String nombreTabla = tabla.getAttributeValue("nom");
            // ici c'est la liste des lignes de la table
            List lista_campos = tabla.getChildren();
            // ici on découpe la liste des lignes
            for (int j = 0; j < lista_campos.size(); j++) {
                // ici on a une ligne de la table
                Element campo = (Element) lista_campos.get(j);
                for (Element colonne : campo.getChildren()) {
                    LineOfData lineOfData = new LineOfData();
                    // le nom de la colone
                    lineOfData.setColomne(colonne.getName());
                    // le value que le correspond
                    lineOfData.setValue(colonne.getText());
                    lineOfDatas.add(lineOfData);
                }
                insertLine(con, lineOfDatas, nombreTabla);
                lineOfDatas.clear();
            }
        // / mettre à jour la table dans la BDD
        }
    } catch (IOException | JDOMException io) {
        System.out.println("error");
    }
// FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(langueBean.getMsg("info") + " :", langueBean.getMsg("impBDD.info1")));
}
Also used : SAXBuilder(org.jdom2.input.SAXBuilder) Table(mom.trd.opentheso.core.exports.privatesdatas.tables.Table) Element(org.jdom2.Element) ArrayList(java.util.ArrayList) IOException(java.io.IOException) Document(org.jdom2.Document) JDOMException(org.jdom2.JDOMException) LineOfData(mom.trd.opentheso.core.exports.privatesdatas.LineOfData) ArrayList(java.util.ArrayList) List(java.util.List) LanguageBean(mom.trd.opentheso.SelectedBeans.LanguageBean)

Example 8 with LineOfData

use of mom.trd.opentheso.core.exports.privatesdatas.LineOfData in project opentheso by miledrousset.

the class ExportPrivatesDatas method getDatasOfTable.

public ArrayList<Table> getDatasOfTable(HikariDataSource ds, String tableName) {
    ArrayList<Table> tableList = new ArrayList<>();
    if (!isTableToIgnore(tableName)) {
        ArrayList<TablesColumn> tablesColumns = new ArrayList<>();
        Connection conn;
        Statement stmt;
        ResultSet resultSet;
        String colomneNameTemp;
        try {
            conn = ds.getConnection();
            try {
                stmt = conn.createStatement();
                try {
                    // récupération des noms des colonnes de la table
                    // et sont type de données
                    String query = "SELECT COLUMN_NAME," + " data_type FROM INFORMATION_SCHEMA.COLUMNS" + " where TABLE_NAME='" + tableName + "'";
                    resultSet = stmt.executeQuery(query);
                    while (resultSet.next()) {
                        colomneNameTemp = resultSet.getString("COLUMN_NAME");
                        if (!isToIgnore(colomneNameTemp)) {
                            TablesColumn tablesColumn = new TablesColumn();
                            tablesColumn.setColumnName(colomneNameTemp);
                            tablesColumn.setColumnType(resultSet.getString("data_type"));
                            tablesColumns.add(tablesColumn);
                        }
                    }
                    // récupération des données de la table
                    query = "SELECT * FROM " + tableName;
                    resultSet = stmt.executeQuery(query);
                    while (resultSet.next()) {
                        Table table = new Table();
                        ArrayList<LineOfData> lineOfDatas = new ArrayList<>();
                        for (TablesColumn tablesColumn : tablesColumns) {
                            LineOfData lineOfData = new LineOfData();
                            lineOfData.setColomne(tablesColumn.getColumnName());
                            if (tablesColumn.getColumnType().equalsIgnoreCase("integer")) {
                                lineOfData.setValue("" + resultSet.getInt(tablesColumn.getColumnName()));
                            }
                            if (tablesColumn.getColumnType().equalsIgnoreCase("character varying")) {
                                lineOfData.setValue(resultSet.getString(tablesColumn.getColumnName()));
                            }
                            if (tablesColumn.getColumnType().equalsIgnoreCase("character")) {
                                lineOfData.setValue(resultSet.getString(tablesColumn.getColumnName()));
                            }
                            if (tablesColumn.getColumnType().equalsIgnoreCase("text")) {
                                lineOfData.setValue(resultSet.getString(tablesColumn.getColumnName()));
                            }
                            if (tablesColumn.getColumnType().equalsIgnoreCase("timestamp with time zone")) {
                                lineOfData.setValue("" + resultSet.getDate(tablesColumn.getColumnName()));
                            }
                            if (tablesColumn.getColumnType().equalsIgnoreCase("timestamp without time zone")) {
                                lineOfData.setValue("" + resultSet.getDate(tablesColumn.getColumnName()));
                            }
                            if (tablesColumn.getColumnType().equalsIgnoreCase("boolean")) {
                                lineOfData.setValue("" + resultSet.getBoolean(tablesColumn.getColumnName()));
                            }
                            if (tablesColumn.getColumnType().equalsIgnoreCase("USER-DEFINED")) {
                                lineOfData.setValue(resultSet.getString(tablesColumn.getColumnName()));
                            }
                            lineOfDatas.add(lineOfData);
                        }
                        table.setLineOfDatas(lineOfDatas);
                        tableList.add(table);
                    }
                } finally {
                    stmt.close();
                }
            } finally {
                conn.close();
            }
        } catch (SQLException ex) {
            Logger.getLogger(Table.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return tableList;
}
Also used : Table(mom.trd.opentheso.core.exports.privatesdatas.tables.Table) SQLException(java.sql.SQLException) Statement(java.sql.Statement) LineOfData(mom.trd.opentheso.core.exports.privatesdatas.LineOfData) ArrayList(java.util.ArrayList) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) TablesColumn(mom.trd.opentheso.core.exports.privatesdatas.TablesColumn)

Aggregations

LineOfData (mom.trd.opentheso.core.exports.privatesdatas.LineOfData)8 Table (mom.trd.opentheso.core.exports.privatesdatas.tables.Table)8 SQLException (java.sql.SQLException)4 Statement (java.sql.Statement)4 ArrayList (java.util.ArrayList)4 IOException (java.io.IOException)3 Connection (java.sql.Connection)3 List (java.util.List)3 Document (org.jdom2.Document)3 Element (org.jdom2.Element)3 JDOMException (org.jdom2.JDOMException)3 SAXBuilder (org.jdom2.input.SAXBuilder)3 HikariDataSource (com.zaxxer.hikari.HikariDataSource)2 LanguageBean (mom.trd.opentheso.SelectedBeans.LanguageBean)2 Test (org.junit.Test)2 File (java.io.File)1 ResultSet (java.sql.ResultSet)1 ExportPrivatesDatas (mom.trd.opentheso.core.exports.helper.ExportPrivatesDatas)1 TablesColumn (mom.trd.opentheso.core.exports.privatesdatas.TablesColumn)1