<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>https://wiki.nonip.net/index.php?action=history&amp;feed=atom&amp;title=Android%2Fdb%2F%E5%9F%BA%E6%9C%AC</id>
		<title>Android/db/基本 - 変更履歴</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.nonip.net/index.php?action=history&amp;feed=atom&amp;title=Android%2Fdb%2F%E5%9F%BA%E6%9C%AC"/>
		<link rel="alternate" type="text/html" href="https://wiki.nonip.net/index.php?title=Android/db/%E5%9F%BA%E6%9C%AC&amp;action=history"/>
		<updated>2026-04-24T20:50:06Z</updated>
		<subtitle>このウィキのこのページに関する変更履歴</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>https://wiki.nonip.net/index.php?title=Android/db/%E5%9F%BA%E6%9C%AC&amp;diff=351&amp;oldid=prev</id>
		<title>127.0.0.1: ページの作成:「==db接続サンプル== *DatabaseHelper.java  import android.content.Context;  import android.database.sqlite.SQLiteDatabase;  import android.database.sqlite.SQLiteOpenH...」</title>
		<link rel="alternate" type="text/html" href="https://wiki.nonip.net/index.php?title=Android/db/%E5%9F%BA%E6%9C%AC&amp;diff=351&amp;oldid=prev"/>
				<updated>2015-05-19T18:10:51Z</updated>
		
		<summary type="html">&lt;p&gt;ページの作成:「==db接続サンプル== *DatabaseHelper.java  import android.content.Context;  import android.database.sqlite.SQLiteDatabase;  import android.database.sqlite.SQLiteOpenH...」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==db接続サンプル==&lt;br /&gt;
*DatabaseHelper.java&lt;br /&gt;
 import android.content.Context;&lt;br /&gt;
 import android.database.sqlite.SQLiteDatabase;&lt;br /&gt;
 import android.database.sqlite.SQLiteOpenHelper;&lt;br /&gt;
 public class DatabaseHelper extends SQLiteOpenHelper {&lt;br /&gt;
    static final String DATABASE_NAME = &amp;quot;mytest.db&amp;quot;;&lt;br /&gt;
    static final int DATABASE_VERSION = 1;&lt;br /&gt;
    public DatabaseHelper(Context context) {&lt;br /&gt;
        super(context, DATABASE_NAME, null, DATABASE_VERSION);&lt;br /&gt;
    }&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(SQLiteDatabase db) {&lt;br /&gt;
        ImageDao.createTable(db);&lt;br /&gt;
    }&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {&lt;br /&gt;
        ImageDao.dropCreateTable(db);&lt;br /&gt;
    }&lt;br /&gt;
    public SQLiteDatabase open() {&lt;br /&gt;
        return super.getWritableDatabase();&lt;br /&gt;
    }&lt;br /&gt;
    public void close(){&lt;br /&gt;
        super.close();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
*ImageDao.java&lt;br /&gt;
 import java.util.ArrayList;&lt;br /&gt;
 import java.util.Date;&lt;br /&gt;
 import java.util.HashMap;&lt;br /&gt;
 import android.content.ContentValues;&lt;br /&gt;
 import android.content.Context;&lt;br /&gt;
 import android.database.Cursor;&lt;br /&gt;
 import android.database.sqlite.SQLiteDatabase;&lt;br /&gt;
 public class ImageDao {&lt;br /&gt;
     private Context mContext;&lt;br /&gt;
    private SQLiteDatabase mDb;&lt;br /&gt;
    public static final String TABLE_NAME = &amp;quot;images&amp;quot;;&lt;br /&gt;
    public static final String COL_ID = &amp;quot;_id&amp;quot;;&lt;br /&gt;
    public static final String COL_IMAGE_ID = &amp;quot;image_id&amp;quot;;&lt;br /&gt;
    public static final String COL_URL = &amp;quot;url&amp;quot;;&lt;br /&gt;
    public static final String COL_LASTUPDATE = &amp;quot;lastupdate&amp;quot;;&lt;br /&gt;
    public ImageDao(Context context) {&lt;br /&gt;
        mContext = context;&lt;br /&gt;
    }&lt;br /&gt;
    public void connection() {&lt;br /&gt;
        DatabaseHelper helper = new DatabaseHelper(mContext);&lt;br /&gt;
        mDb = helper.open();&lt;br /&gt;
    }&lt;br /&gt;
    public void close() {&lt;br /&gt;
        mDb.close();&lt;br /&gt;
    }&lt;br /&gt;
    public static void createTable(SQLiteDatabase db) {&lt;br /&gt;
        db.execSQL(&lt;br /&gt;
        &amp;quot;CREATE TABLE &amp;quot; + TABLE_NAME + &amp;quot; (&amp;quot;&lt;br /&gt;
        + COL_ID + &amp;quot; INTEGER PRIMARY KEY AUTOINCREMENT,&amp;quot;&lt;br /&gt;
        + COL_IMAGE_ID + &amp;quot; TEXT,&amp;quot;&lt;br /&gt;
        + COL_URL + &amp;quot; TEXT NOT NULL,&amp;quot;&lt;br /&gt;
        + COL_LASTUPDATE + &amp;quot; TEXT NOT NULL);&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public static void dropCreateTable(SQLiteDatabase db) {&lt;br /&gt;
        db.execSQL(&amp;quot;DROP TABLE IF EXISTS &amp;quot; + TABLE_NAME);&lt;br /&gt;
        createTable(db);&lt;br /&gt;
    }&lt;br /&gt;
    public boolean deleteAll(){&lt;br /&gt;
        return mDb.delete(TABLE_NAME, null, null) &amp;gt; 0;&lt;br /&gt;
    }&lt;br /&gt;
    public boolean deleteById(int id){&lt;br /&gt;
        String[] selectArgs = new String[]{ String.valueOf(id) };&lt;br /&gt;
        return mDb.delete(TABLE_NAME, COL_ID + &amp;quot;=?&amp;quot;, selectArgs) &amp;gt; 0;&lt;br /&gt;
    }&lt;br /&gt;
    public ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;&amp;gt; findAll() {&lt;br /&gt;
        ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;&amp;gt; images = new ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;&amp;gt;();&lt;br /&gt;
        Cursor c =  mDb.query(TABLE_NAME, null, null, null, null, null, COL_ID);&lt;br /&gt;
        if (c.moveToFirst()) {&lt;br /&gt;
            do {&lt;br /&gt;
                HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image = new HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;();&lt;br /&gt;
                image.put(ImageDao.COL_ID,  String.valueOf(c.getInt(c.getColumnIndex(ImageDao.COL_ID))));&lt;br /&gt;
                image.put(ImageDao.COL_IMAGE_ID,  c.getString(c.getColumnIndex(ImageDao.COL_IMAGE_ID)));&lt;br /&gt;
                image.put(ImageDao.COL_URL,  c.getString(c.getColumnIndex(ImageDao.COL_URL)));&lt;br /&gt;
                image.put(ImageDao.COL_LASTUPDATE,  c.getString(c.getColumnIndex(ImageDao.COL_LASTUPDATE)));&lt;br /&gt;
                images.add(image);&lt;br /&gt;
            } while(c.moveToNext());&lt;br /&gt;
        }&lt;br /&gt;
        c.close();&lt;br /&gt;
        return images;&lt;br /&gt;
    }&lt;br /&gt;
    public HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; findRowById(int id) {&lt;br /&gt;
        String[] selectArgs = new String[]{ String.valueOf(id) };&lt;br /&gt;
        Cursor c =  mDb.query(TABLE_NAME, null, COL_ID + &amp;quot;=?&amp;quot;, selectArgs, null, null, null);&lt;br /&gt;
        HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image = new HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;();&lt;br /&gt;
        if (c.moveToFirst()) {&lt;br /&gt;
            if (c.getCount() &amp;gt; 0 ) {&lt;br /&gt;
                image.put(ImageDao.COL_ID,  String.valueOf(c.getInt(c.getColumnIndex(ImageDao.COL_ID))));&lt;br /&gt;
                image.put(ImageDao.COL_IMAGE_ID,  c.getString(c.getColumnIndex(ImageDao.COL_IMAGE_ID)));&lt;br /&gt;
                image.put(ImageDao.COL_URL,  c.getString(c.getColumnIndex(ImageDao.COL_URL)));&lt;br /&gt;
                image.put(ImageDao.COL_LASTUPDATE,  c.getString(c.getColumnIndex(ImageDao.COL_LASTUPDATE)));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        c.close();&lt;br /&gt;
        return image;&lt;br /&gt;
    }&lt;br /&gt;
    public HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; findRowByImageId(String imageId) {&lt;br /&gt;
        String[] selectArgs = new String[]{ imageId };&lt;br /&gt;
        Cursor c =  mDb.query(TABLE_NAME, null, COL_IMAGE_ID + &amp;quot;=?&amp;quot;, selectArgs, null, null, null);&lt;br /&gt;
        HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image = new HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;();&lt;br /&gt;
        if (c.moveToFirst()) {&lt;br /&gt;
            if (c.getCount() &amp;gt; 0 ) {&lt;br /&gt;
                image.put(ImageDao.COL_ID,  String.valueOf(c.getInt(c.getColumnIndex(ImageDao.COL_ID))));&lt;br /&gt;
                image.put(ImageDao.COL_IMAGE_ID,  c.getString(c.getColumnIndex(ImageDao.COL_IMAGE_ID)));&lt;br /&gt;
                image.put(ImageDao.COL_URL,  c.getString(c.getColumnIndex(ImageDao.COL_URL)));&lt;br /&gt;
                image.put(ImageDao.COL_LASTUPDATE,  c.getString(c.getColumnIndex(ImageDao.COL_LASTUPDATE)));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        c.close();&lt;br /&gt;
        return image;&lt;br /&gt;
    }&lt;br /&gt;
    public void insertImageIdUrl(String imageId, String url){&lt;br /&gt;
        HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image = new HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;();&lt;br /&gt;
        image.put(COL_IMAGE_ID, imageId);&lt;br /&gt;
        image.put(COL_URL, url);&lt;br /&gt;
        insert(image);&lt;br /&gt;
    }&lt;br /&gt;
    public void insert(HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image){&lt;br /&gt;
        Date dateNow = new Date();&lt;br /&gt;
        ContentValues values = new ContentValues();&lt;br /&gt;
        values.put(COL_IMAGE_ID, image.get(COL_IMAGE_ID));&lt;br /&gt;
        values.put(COL_URL, image.get(COL_URL));&lt;br /&gt;
        values.put(COL_LASTUPDATE, dateNow.toLocaleString());&lt;br /&gt;
        mDb.insertOrThrow(TABLE_NAME, null, values);&lt;br /&gt;
    }&lt;br /&gt;
    public void updateByImageId(HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image, String imageId) {&lt;br /&gt;
        Date dateNow = new Date();&lt;br /&gt;
        ContentValues values = new ContentValues();&lt;br /&gt;
        values.put(COL_IMAGE_ID, image.get(COL_IMAGE_ID));&lt;br /&gt;
        values.put(COL_URL, image.get(COL_URL_THUMB));&lt;br /&gt;
        values.put(COL_LASTUPDATE, dateNow.toLocaleString());&lt;br /&gt;
        mDb.update(TABLE_NAME, values, COL_IMAGE_ID + &amp;quot;=?&amp;quot;, new String[] {imageId});&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
*DbTestActivity.java&lt;br /&gt;
 import java.util.ArrayList;&lt;br /&gt;
 import java.util.HashMap;&lt;br /&gt;
 import android.app.Activity;&lt;br /&gt;
 import android.os.Bundle;&lt;br /&gt;
 import android.util.Log;&lt;br /&gt;
 public class DbTestActivity extends Activity {&lt;br /&gt;
    private static String TAG = &amp;quot;DbTestActivity&amp;quot;;&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        setContentView(R.layout.db_layout);&lt;br /&gt;
    }&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onStart() {&lt;br /&gt;
        super.onStart();&lt;br /&gt;
        ImageDao dao = new ImageDao(getApplicationContext());&lt;br /&gt;
        dao.connection();&lt;br /&gt;
        dao.insertImageIdUrl(&amp;quot;test1&amp;quot;, &amp;quot;hoge1&amp;quot;);&lt;br /&gt;
        ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt;&amp;gt; users = dao.findAll();&lt;br /&gt;
        //HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image = dao.findRowById(1);&lt;br /&gt;
        HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; image = dao.findRowByImageId(&amp;quot;test1&amp;quot;);&lt;br /&gt;
        dao.close();&lt;br /&gt;
        for (HashMap&amp;lt;&amp;lt;nowiki /&amp;gt;String, String&amp;gt; user : users) {&lt;br /&gt;
            Log.d(TAG, &amp;quot;id &amp;quot; + user.get(&amp;quot;_id&amp;quot;));&lt;br /&gt;
            Log.d(TAG, &amp;quot;image_id &amp;quot; + user.get(&amp;quot;image_id&amp;quot;));&lt;br /&gt;
            Log.d(TAG, &amp;quot;url &amp;quot; + user.get(&amp;quot;url&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
        Log.d(TAG, &amp;quot;id &amp;quot; + image.get(&amp;quot;_id&amp;quot;));&lt;br /&gt;
        Log.d(TAG, &amp;quot;image_id &amp;quot; + image.get(&amp;quot;image_id&amp;quot;));&lt;br /&gt;
        Log.d(TAG, &amp;quot;url &amp;quot; + image.get(&amp;quot;url&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==以下エラー。データを取得したら、cursor.moveToFirst();をする==&lt;br /&gt;
CursorIndexOutOfBoundsException&lt;br /&gt;
&lt;br /&gt;
==以下エラー。dbをcloseしてるか確認。==&lt;br /&gt;
close() was never explicitly called on database '/data/data/com.project1/databases/test.db' &lt;br /&gt;
&lt;br /&gt;
==以下エラー。カーソルを閉じてるか確認==&lt;br /&gt;
Finalizing a Cursor that has not been deactivated or closed. database&lt;/div&gt;</summary>
		<author><name>127.0.0.1</name></author>	</entry>

	</feed>