2010年4月6日火曜日

[android][java]twitter4Jで取得したタイムラインをSQLiteのテーブルに突っ込む

ってことで。

twitter4Jは素晴らしいっすね。
ものすごく簡単に、twitterにアクセスして色々できちゃいます。

詳しい使い方は
http://www.nilab.info/zurazure2/001120.html
http://www.adamrocker.com/blog/255/hello-android-chapter7-the-connected-world.html
あたりを見てもらうとして。

取得したタイムラインをデータベースに一時的に入れて色々弄りたいじゃないですか。
ってことでやってみました。
すごい簡単。
以下コード。汚いですけど勘弁してください。



/**
*
* @author bangucs
* twitterに接続してDBに入れるとこまでやります
*/
class DatabaseHelper extends SQLiteOpenHelper {

    public DatabaseHelper(Context context) {
        super(context, null, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.beginTransaction();
        try {
            SQLiteStatement stmt;
            //作成するテーブルを指定
            db.execSQL("create table twits (user_name text not null, twit text not null);");
            //実行するSQLステートメント。prepared Statementに近いかな?
            stmt = db.compileStatement("insert into twits values (?, ?);");
            //Twitterに接続します
            TwitterFactory tf = new TwitterFactory();
            Twitter twitter = tf.getInstance("bangucs","********");
            //タイムライン取得
            List lst = twitter.getUserTimeline();

            //取得したタイムラインをSQLiteDBにつっこみます
            for (int i=0;i
                stmt.bindString(1, lst.get(i).getUser().getName());
                stmt.bindString(2, lst.get(i).getText());
                stmt.executeInsert();
            }
            db.setTransactionSuccessful();
        } catch (TwitterException e) {
            e.printStackTrace();
        } finally {
            db.endTransaction();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

    }
}

んー簡単ですね。
さて今日はけいおん!!だ!

0 件のコメント: