ホームページ  >  記事  >  データベース  >  mysqlに画像を追加する方法

mysqlに画像を追加する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-12-16 11:05:354669ブラウズ

mysql に画像を追加する方法: まず、FileInputStream を使用して画像を読み取るメソッドを作成し、次にデータベースに接続して SQL ステートメントを書き込み、PreparedStatement を使用して SQL ステートメントを実行します。

mysqlに画像を追加する方法

このチュートリアルの動作環境: Windows 7 システム、mysql バージョン 8.0.22. この方法は、すべてのブランドのコンピューターに適しています。

関連する無料学習の推奨事項: mysql ビデオ チュートリアル

mysql に画像を追加する方法:

1. 効果

mysqlに画像を追加する方法

文字列を保存しているのではありませんか? 左側のデータ型を確認してください。

2. BLOB データの取得

FileInputStream を使用して画像を読み取るメソッドを作成すると、ByteArrayOutputStream が読み取られます。取得したデータを byte[] 配列に書き込み、

public static byte[] getImgStr(String path) throws IOException {
        FileInputStream fis = new FileInputStream(path);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        int len = 0;
        byte[] b = new byte[1024];
        while ((len = fis.read(b))!= -1){
            out.write(b,0,len);
        }
        //接收out
        byte[] array = out.toByteArray();
        fis.close();
        out.close();
        return array;
    }

3. データベースに接続し、SQL ステートメントを書き込みます

Blob を使用して Blob を作成します。次に、取得したデータを追加します。画像データを BLOB 型に変換し、PreparedStatement を使用して SQL ステートメントを実行します。これは、PreparedStatement がプレースホルダーをサポートし、BLOB アドレスの値をデータベースに直接書き込むことができる setBlob メソッドを備えているためです。そして完了です。

    public static void main(String[] args) {
        /*
        加载驱动
         */
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            //获取连接
            String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
            String user= "root";
            String password ="123456";
            try {
                Connection connection = DriverManager.getConnection(url,user,password);
                /*
                插入图片
                 */
                byte[] arr = getImgStr("图片地址");
                Blob blob = connection.createBlob();
                blob.setBytes(1,arr);
                String sql = "insert into pictures (name,pic,date) values('张三',?,'2015-01-01')";
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setBlob(1,blob);
                ps.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException | IOException e) {
            e.printStackTrace();
        }
    }

関連する無料学習の推奨事項: php プログラミング (ビデオ)

以上がmysqlに画像を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。