前回の続き。
今回はデータベースを使用してみます。
SQLiteが使用できるようです。
まずはBizCardひとりぶんのデータを保持するクラスを作ります。
単にプロパティ名とそれに対応するDBカラム名、セッターゲッターを書いただけです。
setter/getterを一個一個作るのは馬鹿みたいなので、「ソース」→「toString()の生成」から自動で作ってもらいます。
/src/com.example.bizcard/db/BizCard.java
SerializableはserialVersionUIDを定義しないと怒られます。
これは、BizCardのデータをエクスポートするときにバージョン情報も付記しておき、その後インポートしたときにデータ構造がバージョンアップされていたら警告する、みたいな機能です。
エクスポートインポート機能を備えたアプリなら重要かもしれません。
元のエントリでは@SuppressWarnings("serial")でエラーの発生を抑えていますが、こっちではとりあえず1で。
まあ今後バージョンアップする予定もありませんが。
今回はデータベースを使用してみます。
SQLiteが使用できるようです。
まずはBizCardひとりぶんのデータを保持するクラスを作ります。
単にプロパティ名とそれに対応するDBカラム名、セッターゲッターを書いただけです。
setter/getterを一個一個作るのは馬鹿みたいなので、「ソース」→「toString()の生成」から自動で作ってもらいます。
/src/com.example.bizcard/db/BizCard.java
public class BizCard implements Serializable{
//バージョン
private static final long serialVersionUID = 1;
// テーブル名
public static final String TABLE_NAME = "biz_card";
// カラム名
public static final String COLUMN_ID = "_id";
public static final String COLUMN_PERSON_NAME = "person_name";
public static final String COLUMN_COMPANY_NAME = "company_name";
public static final String COLUMN_ORGANIZATION_NAME = "organization_name";
public static final String COLUMN_POSITION_NAME = "position_name";
public static final String COLUMN_ZIP_CODE = "zip_code";
public static final String COLUMN_ADDRESS = "address";
public static final String COLUMN_TEL1 = "tel1";
public static final String COLUMN_TEL2 = "tel2";
public static final String COLUMN_MAIL = "mail";
// プロパティ
private Long rowid = null;
private String personName = null;
private String organizationName = null;
private String companyName = null;
private String positionName = null;
private String zipCode = null;
private String address = null;
private String tel1 = null;
private String tel2 = null;
private String mail = null;
//setter/getter
public Long getRowid() {
return rowid;
}
public void setRowid(Long rowid) {
this.rowid = rowid;
}
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public String getOrganizationName() {
return organizationName;
}
public void setOrganizationName(String organizationName) {
this.organizationName = organizationName;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getPositionName() {
return positionName;
}
public void setPositionName(String positionName) {
this.positionName = positionName;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getTel1() {
return tel1;
}
public void setTel1(String tel1) {
this.tel1 = tel1;
}
public String getTel2() {
return tel2;
}
public void setTel2(String tel2) {
this.tel2 = tel2;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
/*
* toStringをオーバーライド
* 何故氏名+会社名だけかは謎
*/
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append( getPersonName());
if( getCompanyName() != null){
builder.append(":");
builder.append(getCompanyName());
}
return builder.toString();
}
}
SerializableはserialVersionUIDを定義しないと怒られます。
これは、BizCardのデータをエクスポートするときにバージョン情報も付記しておき、その後インポートしたときにデータ構造がバージョンアップされていたら警告する、みたいな機能です。
エクスポートインポート機能を備えたアプリなら重要かもしれません。
元のエントリでは@SuppressWarnings("serial")でエラーの発生を抑えていますが、こっちではとりあえず1で。
まあ今後バージョンアップする予定もありませんが。
PR
トラックバック
トラックバックURL: