package com.easycrud.builder; import com.easycrud.utils.PropertiesUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.*; /** * @BelongsProject: EasyCrud * @BelongsPackage: com.easycrud.builder * @Author: xpx * @Email: 2436846019@qq.com * @CreateTime: 2023-05-02 18:02 * @Description: 读Table * @Version: 1.0 */ public class BuildTable { private static final Logger logger = LoggerFactory.getLogger(BuildTable.class); private static Connection conn = null; /** * 查表名和表注释 */ private static String SQL_SHOW_TABLE_STATUS = "show table status"; /** * 读配置,连接数据库 */ static { String driverName = PropertiesUtils.getString("db.driver.name"); String url = PropertiesUtils.getString("db.url"); String user = PropertiesUtils.getString("db.username"); String password = PropertiesUtils.getString("db.password"); try { Class.forName(driverName); conn = DriverManager.getConnection(url,user,password); } catch (Exception e) { logger.error("数据库连接失败",e); } } /** * 读取表 */ public static void getTables() { PreparedStatement ps = null; ResultSet tableResult = null; try{ ps = conn.prepareStatement(SQL_SHOW_TABLE_STATUS); tableResult = ps.executeQuery(); while(tableResult.next()) { String tableName = tableResult.getString("name"); String comment = tableResult.getString("comment"); logger.info("tableName:{},comment:{}",tableName,comment); } }catch (Exception e){ logger.error("读取表失败",e); }finally { if (tableResult != null) { try { tableResult.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
Le propre journal de Java.
L'utilisation courante est la suivante, imprimez les informations du journal :
logger.error("Échec de la connexion à la base de données",e)
logger.info( "tableName :{},comment:{}",tableName,comment), {} est un espace réservé
LoggerFactory.getLogger(xxx.class)
Spécifiez la classe à initialisez l'objet journal, lors de la sortie du journal, vous pouvez imprimer la catégorie des informations du journal.
L'objet Connection permet d'ouvrir une connexion à une source de données.
Class.forName(driverName)
Chargez le pilote.
DriverManager.getConnection(url,user,password)
Obtenir la connexion à la base de données.
PreparedStatement
L'une des API utilisées pour exécuter les instructions de requête SQL.
Le jeu de résultats (ResultSet) est un objet renvoyé par les résultats de la requête dans les données.
ps = conn.prepareStatement(SQL_SHOW_TABLE_STATUS)
L'instruction SQL sera précompilée avant l'exécution, puis l'instruction SQL sera exécutée et le résultat sera renvoyé.
tableResult = ps.executeQuery()
Stockez les résultats de la requête de la réponse de la base de données dans l'objet de classe ResultSet pour notre usage.
La position initiale du pointeur dans ResultSet est avant la première ligne ; à la ligne actuelle.
représentent respectivement le nom de la table et le commentaire de la table interrogés après l'exécution de l'instruction d'état de la table show de la base de données. Utilisez la méthode getString() de ResultSet pour obtenir la valeur correspondante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!