Sobes.tech
Junior

Quels outils avez-vous utilisés pour travailler avec des bases de données?

sobes.tech IA

Réponse de l'IA

Pour travailler avec des bases de données, j'ai utilisé les outils suivants:

  • Clients SQL :
    • DBeaver
    • SQL Developer
    • pgAdmin
  • Outils en ligne de commande :
    • psql
    • mysql
  • Frameworks et bibliothèques pour l'automatisation des tests :
    • JDBC (pour Java)
    • psycopg2 (pour Python, PostgreSQL)
    • mysql-connector-python (pour Python, MySQL)

La plupart du temps, j'utilisais des clients SQL pour explorer manuellement les données, écrire et exécuter des requêtes, ainsi que des outils en ligne de commande et des bibliothèques pour automatiser la vérification des données au niveau de l'API ou des tests d'intégration.

Exemples d'utilisation en automatisation :

// Vérification du nombre d'enregistrements dans une table
public int getCountOfUsers(String username) {
    String sql = "SELECT COUNT(*) FROM users WHERE username = ?";
    try (Connection conn = DriverManager.getConnection(url, user, password);
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setString(1, username);
        try (ResultSet rs = pstmt.executeQuery()) {
            if (rs.next()) {
                return rs.getInt(1);
            }
        }
    } catch (SQLException e) {
        e.printStackTrace(); // Journalisation de l'erreur
    }
    return 0;
}
# Vérification de la valeur d'un champ dans un enregistrement
def get_user_status(user_id):
    conn = None
    cursor = None
    try:
        conn = psycopg2.connect(database="mydatabase", user="myuser", password="mypassword", host="localhost")
        cursor = conn.cursor()
        cursor.execute("SELECT status FROM users WHERE id = %s", (user_id,))
        result = cursor.fetchone()
        if result:
            return result[0]
        return None
    except (Exception, psycopg2.Error) as error:
        print("Erreur lors de la récupération des données de PostgreSQL", error) # Journalisation de l'erreur
        return None
    finally:
        if cursor:
            cursor.close()
        if conn:
            conn.close()