GreenDaoの小さな使用
32574 ワード
//フルレイアウト依存
まず上につける
そして依存を加える
UserクラスBeanクラスの書き方には特に注意が必要です
MainActivity実装
レイアウト
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
}
Appの依存まず上につける
apply plugin: 'org.greenrobot.greendao'
そして依存を加える
dependencies {
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'org.greenrobot:greendao:3.2.0'
}
UserクラスBeanクラスの書き方には特に注意が必要です
@Entity
public class User {
@Id(autoincrement = true)
private long id;
private String name;
@Generated(hash = 1144922831)
public User(long id, String name) {
this.id = id;
this.name = name;
}
@Generated(hash = 586692638)
public User() {
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
MainActivity実装
public class MainActivity extends AppCompatActivity {
UserDao userDao;
private EditText etId;
private EditText etName;
private Button btnAdd;
private Button btnDelete;
private Button btnQuery;
private TextView tvQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initDbHelp();
/* */
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = etId.getText().toString();
String name = etName.getText().toString();
if (isNotEmpty(id) && isNotEmpty(name)) {
QueryBuilder qb = userDao.queryBuilder();
ArrayList list = (ArrayList) qb.where(UserDao.Properties.Id.eq(id)).list();
if (list.size() > 0) {
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
} else {
userDao.insert(new User(Long.valueOf(id), name));
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
}
} else {
if (isEmpty(id) && isNotEmpty(name)) {
Toast.makeText(MainActivity.this, "id ", Toast.LENGTH_SHORT).show();
}
if (isEmpty(name) && isNotEmpty(id)) {
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
}
if (isEmpty(id) && isEmpty(name)) {
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
}
}
etId.setText("");
etName.setText("");
}
});
/* */
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = etId.getText().toString();
if (isNotEmpty(id)) {
userDao.deleteByKey(Long.valueOf(id));
QueryBuilder qb = userDao.queryBuilder();
ArrayList list = (ArrayList) qb.where(UserDao.Properties.Id.eq(id)).list();
if (list.size() < 1) {
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
etId.setText("");
etName.setText("");
}
} else {
Toast.makeText(MainActivity.this, "id ", Toast.LENGTH_SHORT).show();
}
}
});
/* */
btnQuery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String id = etId.getText().toString();
if (isNotEmpty(id)) {
QueryBuilder qb = userDao.queryBuilder();
ArrayList list = (ArrayList) qb.where(UserDao.Properties.Id.eq(id)).list();
if (list.size() > 0) {
String text = "";
for (User user : list) {
text = text + "\r
" + user.getName();
}
tvQuery.setText(text);
} else {
tvQuery.setText("");
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
}
etId.setText("");
etName.setText("");
} else {
Toast.makeText(MainActivity.this, "id ", Toast.LENGTH_SHORT).show();
}
}
});
}
/* */
private void initDbHelp() {
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "recluse-db", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
userDao = daoSession.getUserDao();
}
private void initView() {
etId = (EditText) findViewById(R.id.etId);
etName = (EditText) findViewById(R.id.etName);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnDelete = (Button) findViewById(R.id.btnDelete);
btnQuery = (Button) findViewById(R.id.btnQuery);
tvQuery = (TextView) findViewById(R.id.tvQuery);
}
private boolean isNotEmpty(String s) {
if (s != null && !s.equals("") || s.length() > 0) {
return true;
} else {
return false;
}
}
private boolean isEmpty(String s) {
if (isNotEmpty(s)) {
return false;
} else {
return true;
}
}
}
レイアウト
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:text="greenDao lib test"
android:textColor="@android:color/black" />
<EditText
android:id="@+id/etId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint=" id"
android:inputType="number"
android:textSize="15sp" />
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint=" "
android:textSize="15sp" />
<Button
android:id="@+id/btnAdd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=" " />
<Button
android:id="@+id/btnDelete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=" " />
<Button
android:id="@+id/btnQuery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=" " />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:text=" "
android:textColor="@android:color/black" />
<TextView
android:id="@+id/tvQuery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:textColor="@android:color/black" />
LinearLayout>