ホームページ  >  記事  >  Java  >  Java コードはデータベース テーブルをどのように読み取るのでしょうか?

Java コードはデータベース テーブルをどのように読み取るのでしょうか?

WBOY
WBOY転載
2023-05-08 09:55:071284ブラウズ

Java によるデータベース テーブルの読み取り

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();
                }
            }
        }
    }
}

初心者ガイド

ロガー

Java に付属のログ。

一般的な使用法は次のとおりです。ログ情報を出力します:

logger.error("Database connection failed",e)

logger.info("tableName:{}, comment: {}", tableName, comment), {}はプレースホルダ

LoggerFactory.getLogger(xxx.class)

ログオブジェクトを初期化するクラスを指定します。ログを出力する場合、ログ情報のカテゴリを印刷できます。

Connection

Connection オブジェクトは、データ ソースへの接続を開くために使用されます。

Class.forName(driverName)

ドライバーをロードします。

DriverManager.getConnection(url,user,password)

データベース接続を取得します。

PreparedStatement

SQL クエリ ステートメントの実行に使用される API の 1 つ。

ResultSet

結果セット (ResultSet) は、データ内のクエリ結果によって返されるオブジェクトであり、クエリ結果を格納するオブジェクトです。

ps = conn.prepareStatement(SQL_SHOW_TABLE_STATUS)

SQL ステートメントは実行前にプリコンパイルされ、その後 SQL ステートメントが実行されて結果が返されます。

tableResult = ps.executeQuery()

データベース応答のクエリ結果を、使用のために ResultSet クラス オブジェクトに保存します。

ResultSet の next() メソッド

ResultSet のポインタの初期位置は最初の行の前です。初めて next() メソッドを呼び出すと、最初の行が現在の行に設定されます。ライン。

name と comment

はそれぞれ、データベースの show table status ステートメントの実行後にクエリされるテーブル名とテーブル コメントを表します。 ResultSet の getString() メソッドを使用して、対応する値を取得します。

以上がJava コードはデータベース テーブルをどのように読み取るのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。