2017-08-17 9 views
0

mysql workbunchにDBを作成し、その中にBLOB型の画像を格納しました。
今、私は私のアプリでこの画像を使用したい、mysqlグロブタイプから画像を取得する方法

Class.forName("com.mysql.jdbc.Driver"); 
       try(Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys", "root", "Elior204")){ 
        Statement stmt = con.createStatement(); 
        ResultSet rs = stmt.executeQuery("SELECT img FROM Sentences where id=1"); 
         ImageView image = (ImageView) findViewById(R.id.imageView1); 
        Blob b =rs.getBlob(1); 
        int blobLength = (int) b.length(); 
        byte[] blobAsBytes = b.getBytes(1, blobLength); 
        Bitmap btm =BitmapFactory.decodeByteArray(blobAsBytes,0,blobAsBytes.length); 
        image.setImageBitmap(btm); 
        con.close(); 

質問は、私はどのように継続されますか?

+0

あなたはAndroidで直接mysqlにアクセスすることはできません。あなたはmysqlデータにアクセスするための1つのWebサービスが必要です。 –

+0

あなたが[適切なアクセス許可を含む](https://stackoverflow.com/a/18843518/783412) – hd1

+0

の場合は、 –

答えて

0

これで、好きなように操作できます。あなたのコメントパー

、あなたは、あなたのアプリケーションでそれを表示するには、これを達成するために、あなたのレイアウトにImageViewのを追加し、次のコードを使用します:

image = (ImageView) findViewById(R.id.imageView1); 

button = (Button) findViewById(R.id.btnChangeImage); 
button.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
      java.io.File tmpFileForImage = java.io.File.createTemporaryFile("image", ".png"); // or whatever your extension happens to be 
      java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(new java.io.FileOutputStream(tmpFileForImage); 
      bos.write(imageContents); 
      bos.close(); 
      image.setImageResource(tmpFileForImage.getAbsolutePath()); 
    }); 

未テストのが、正しい軌道に乗ってあなたを取得する必要があります。さらなる支援が必要な場合は、別のコメントを残してください。

+1

私はどのように私のアプリで、画像を表示したいですか? –

+0

私の編集、@EliorSastielを参​​照してください – hd1

+1

私は私の質問を編集し、それはまだ働いていない理由を知っていますか? –

関連する問題