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(); } } } } }
Log Java sendiri.
Penggunaan biasa adalah seperti berikut, cetak maklumat log:
logger.error("Sambungan pangkalan data gagal",e)
logger.info("tableName:{}, komen: {}", tableName, comment), {} ialah pemegang tempat
LoggerFactory.getLogger(xxx.class)
menentukan kelas untuk memulakan objek log, yang boleh dicetak keluar apabila log dikeluarkan Kategori maklumat log.
Objek sambungan digunakan untuk membuka sambungan kepada sumber data.
Class.forName(driverName)
Muatkan pemandu.
DriverManager.getConnection(url,pengguna,kata laluan)
Dapatkan sambungan pangkalan data.
PreparedStatement
Salah satu API yang digunakan untuk melaksanakan pernyataan pertanyaan SQL.
ResultSet ialah objek yang dikembalikan oleh hasil pertanyaan dalam data Set hasil ialah objek yang menyimpan hasil pertanyaan.
ps = conn.prepareStatement(SQL_SHOW_TABLE_STATUS)
Pernyataan SQL akan diprakompil sebelum pelaksanaan, dan kemudian pernyataan SQL akan dilaksanakan dan hasilnya akan dikembalikan.
tableResult = ps.executeQuery()
Simpan hasil pertanyaan bagi respons pangkalan data dalam objek kelas ResultSet untuk kegunaan kami.
Kedudukan awal penuding dalam ResultSet adalah sebelum baris pertama memanggil kaedah next() untuk kali pertama akan menetapkan baris pertama sebagai arus barisan.
masing-masing mewakili nama jadual dan ulasan jadual yang ditanya selepas melaksanakan penyataan status jadual pangkalan data. Gunakan kaedah getString() ResultSet untuk mendapatkan nilai yang sepadan.
Atas ialah kandungan terperinci Bagaimanakah kod Java membaca jadual pangkalan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!