Monthly Archives: 7月 2017

「Android」SQLiteデータベースを使用するトランザクションのサンプルコード

db.beginTransaction();  //トランザクション開始
try{
//パッチ処理
for(Collection c:colls){

insert(db, c);
}

db.setTransactionSuccessful(); //トランザクション実行成功
}catch(Exception e){

MyLog.printStackTraceString(e);

}finally{

db.endTransaction(); //トランザクション完了

}

「Android入門」Activity通信のサンプルコード

サンプルコード

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnOpen=(Button)this.findViewById(R.id.btnOpen);
btnOpen.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {

Intent intent=new Intent(MainActivity.this, OtherActivity.class);
Bundle bundle=new Bundle();
bundle.putString(“name”, “yamada”);
bundle.putInt(“age”, 26);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}

「Android」複数のSQL構文は一つのトランザクションに実行するコード

Javaコード
//トランザクションテスト
public void payment()
{
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
//トランザクション開始
db.beginTransaction();
try
{
db.execSQL(“update employee set amount=amount-10 where employeeid=?”, new Object[]{1});
db.execSQL(“update employee set amount=amount+10 where employeeid=?”, new Object[]{2});
//トランザクション成功
db.setTransactionSuccessful();
}
catch(Exception e){
throw(e);
}
finally
{
//トランザクション終了
db.endTransaction();
}
}

「Andorid」SQLiteデータベースを作成、画像を保存するコード

//DB作成
public class DBService extends SQLiteOpenHelper {

private final static int VERSION = 1;
private final static String DATABASE_NAME = “uniteqinfocher.db”;

public DBService(Context context) {
this(context, DATABASE_NAME, null, VERSION);
}

public DBService(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
String sql = “CREATE TABLE [infocher](”
+ “[_id] INTEGER PRIMARY KEY AUTOINCREMENT,”
+ “[photo] BINARY)”; //binaryフォーマット保存

db.execSQL(sql);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(newVersion > oldVersion){
db.execSQL(“DROP TABLE IF EXISTS[infocher]”);
} else {
return;
}
onCreate(db);
}
}

//DBに画像を保存
public void savePhoto(Drawable appIcon, Context mContext){
LayoutInflater mInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.app_view, null);
ImageView iv = (ImageView) v.findViewById(R.id.appicon);
iv.setImageDrawable(appIcon);
String INSERT_SQL = “INSERT INTO infocher(photo) values(?)”;
SQLiteDatabase db = mDBService.getWritableDatabase(); // DB取得
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
((BitmapDrawable) iv.getDrawable()).getBitmap().compress(
CompressFormat.PNG, 100, baos);//圧縮拡張
Object[] args = new Object[] {baos.toByteArray() };
db.execSQL(INSERT_SQL, args);
baos.close();
db.close();
} catch (Exception e) {
e.printStackTrace();
}

}

//DBから画像取得
public void getPhoto() {
String SELECT_SQL = “SELECT photo FROM infocher”;
ImageView appIcon = (ImageView) v.findViewById(R.id.appicon);
byte[] photo = null;
mDBService = new DBService(getContext());
SQLiteDatabase db = mDBService.getReadableDatabase();
Cursor mCursor = db.rawQuery(SELECT_SQL, null);
if (mCursor != null) {
if (mCursor.moveToFirst()) {//just need to query one time
photo = mCursor.getBlob(mCursor.getColumnIndex(“photo”));//画像取得
}
}
if (mCursor != null) {
mCursor.close();
}
db.close();
ByteArrayInputStream bais = null;
if (photo != null) {
bais = new ByteArrayInputStream(photo);
appIcon.setImageDrawable(Drawable.createFromStream(bais, “photo”));//ImageViewオブジェクトに画像を設定
}

}

10 / 10« 先頭...678910