現在、mysqlにデータが格納されずにこまっています
エラーの原因はstmt.executeUpdate();であると記述されていますが、
SQL文がまちがっているのか、わかりません、、、
ご教授お願いします!!
権限はワイルドカードを与えています!
java
1package com.example.ryo.testtest; 2import java.sql.DriverManager; 3import android.app.Activity; 4import android.content.Intent; 5import android.graphics.Bitmap; 6import android.net.Uri; 7import android.provider.MediaStore; 8import android.support.v7.app.AppCompatActivity; 9import android.os.Bundle; 10import android.view.View; 11import android.widget.Button; 12import android.widget.ImageView; 13import java.io.*; 14import java.sql.Connection; 15import java.sql.PreparedStatement; 16import android.os.AsyncTask; 17import android.view.View.OnClickListener; 18import android.widget.Toast; 19import java.io.ByteArrayOutputStream; 20import java.io.IOException; 21 22 23import static android.content.ContentValues.TAG; 24public class MainActivity extends AppCompatActivity implements OnClickListener { 25 private static final int READ_REQUEST_CODE = 42; 26 ImageView imageView; 27 byte[] sendData; 28 @Override 29 protected void onCreate(Bundle savedInstanceState) { 30 super.onCreate(savedInstanceState); 31 setContentView(R.layout.activity_main); 32 Button button2 = findViewById(R.id.button2); 33 Button button1 = this.findViewById(R.id.button1); 34 button1.setOnClickListener(this); 35 imageView = findViewById(R.id.imageView); 36 37 button2.setOnClickListener(new View.OnClickListener() { 38 //暗黙的Intentを使ってギャラリーアプリを選択し、画像のURIを取得 39 @Override 40 public void onClick(View v) {//ギャラリーから画像を選択するため 41 Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 42 intent.setType("image/*"); 43 startActivityForResult(intent, READ_REQUEST_CODE); 44 } 45 }); 46 } 47 //実際の画像(Bitmap)の取得 48 @Override//コンパイラのエラーなどを教えてくれる 49 public void onActivityResult(int requestCode, int resultCode, 50 Intent resultData) { 51 52 if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) { 53 Uri uri = null; 54 if (resultData != null) { 55 uri = resultData.getData(); 56 try { 57 Bitmap bmp = MediaStore.Images.Media.getBitmap(getContentResolver(), uri); 58 imageView.setImageBitmap(bmp); 59 //画像をバイナリ化している 60 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 61 bmp.compress(Bitmap.CompressFormat.PNG, 100, baos); 62 sendData = baos.toByteArray(); 63 64 } catch (IOException e) { 65 e.printStackTrace(); 66 } 67 } 68 } 69 } 70 //後で書く 71 @Override 72 public void onClick(View v) { 73 if (v.getId() == R.id.button1) { // ボタン1が押下されたら 74 TaskDbInsert task1 = new TaskDbInsert(MainActivity.this); 75 task1.execute(); 76 } 77 } 78 class TaskDbInsert extends AsyncTask<Void, Void, Void> { 79 Activity activity = null; 80 // コンストラクタ 81 public TaskDbInsert(MainActivity act) { 82 activity = act; 83 } 84 @Override 85 protected Void doInBackground(Void... params) { 86 //入力部の定義 87 try { 88 Class.forName("com.mysql.jdbc.Driver"); 89 Connection conn = DriverManager.getConnection("jdbc:mysql://IPアドレス/images", "testuser", "PASSWORD"); 90 PreparedStatement stmt = conn.prepareStatement("insert into images.img (imgdat) values (?)"); 91 stmt.setBinaryStream(1,new ByteArrayInputStream(sendData), sendData.length); 92 stmt.executeUpdate(); 93 stmt.close(); 94 conn.close(); 95 } catch (Exception e){ 96 e.printStackTrace(); 97 } 98 return null; 99 } 100 protected void onPostExecute(){ 101 Toast.makeText(activity,"登録を終了しました", Toast.LENGTH_LONG).show(); 102 } 103 } 104}
回答1件
あなたの回答
tips
プレビュー