mysql に画像を追加する方法: まず、FileInputStream を使用して画像を読み取るメソッドを作成し、次にデータベースに接続して SQL ステートメントを書き込み、PreparedStatement を使用して SQL ステートメントを実行します。
このチュートリアルの動作環境: Windows 7 システム、mysql バージョン 8.0.22. この方法は、すべてのブランドのコンピューターに適しています。
関連する無料学習の推奨事項: mysql ビデオ チュートリアル
mysql に画像を追加する方法:
1. 効果
文字列を保存しているのではありませんか? 左側のデータ型を確認してください。
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 サイトの他の関連記事を参照してください。