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(); } } } } }
The log that comes with Java.
Common usage is as follows, print log information:
logger.error("Database connection failed",e)
logger.info("tableName:{},comment: {}", tableName, comment), {} is the placeholder
LoggerFactory.getLogger(xxx.class)
Specify the class to initialize the log object. When outputting the log, you can print it out The category of the log information.
The Connection object is used to open a connection to a data source.
Class.forName(driverName)
Load the driver.
DriverManager.getConnection(url,user,password)
Get the database connection.
PreparedStatement
One of the APIs used to execute SQL query statements.
The result set (ResultSet) is an object returned by the query results in the data. The result set is an object that stores the query results.
ps = conn.prepareStatement(SQL_SHOW_TABLE_STATUS)
The SQL statement will be precompiled before execution, and then the SQL statement will be executed and the result will be returned.
tableResult = ps.executeQuery()
Store the query results of the database response in the ResultSet class object for our use.
The initial position of the pointer in ResultSet is before the first line; calling the next() method for the first time will set the first line to the current line.
respectively represent the table name and table comment queried after executing the database show table status statement. Use the getString() method of ResultSet to get the corresponding value.
The above is the detailed content of How does Java code read a database table?. For more information, please follow other related articles on the PHP Chinese website!