您的位置:首页 > 其它

GreenDao3.0简单使用

2017-11-15 15:05 393 查看

GreenDao3.0简单使用

greenDAO 优势

1、一个精简的库

2、性能最大化

3、内存开销最小化

4、易于使用的 APIs

5、对 Android 进行高度优化

配置

app中导依赖

apply plugin: 'org.greenrobot.greendao'

compile 'org.greenrobot:greendao:3.2.0'

app Android中

greendao {
schemaVersion 1
daoPackage 'com.example.greendao.gen'
targetGenDir 'src/main/java' }

工程中

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'


User类

@Entity
public class User {
@Id(autoincrement = true)
private Long id;
private String name;
@Generated(hash = 873297011)
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;
}
}

Myapplication类
public class Myapplication extends Application{
private DaoMaster.DevOpenHelper mHelper;
private SQLiteDatabase db;
private DaoMaster mDaoMaster;
private DaoSession mDaoSession;
public static Myapplication instances;
@Override
public void onCreate() {
super.onCreate();
instances = this;
setDatabase();
}
public static Myapplication getInstances(){
return instances;
}
private void setDatabase() {
// 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。
// 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
// 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
// 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);
db = mHelper.getWritableDatabase();
// 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
mDaoMaster = new DaoMaster(db);
mDaoSession = mDaoMaster.newSession();
}
public DaoSession getDaoSession() {
return mDaoSession;
}
public SQLiteDatabase getDb() {
return db;
}

}


Main

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
UserDao userDao;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button add= (Button) findViewById(R.id.add);
Button select= (Button) findViewById(R.id.select);
Button replace= (Button) findViewById(R.id.replace);
Button delete= (Button) findViewById(R.id.delete);
tv = (TextView) findViewById(R.id.textView);
add.setOnClickListener(this);
select.setOnClickListener(this);
replace.setOnClickListener(this);
delete.setOnClickListener(this);
userDao =Myapplication.getInstances().getDaoSession().getUserDao();

//        userDao.deleteByKey((long) 1);
}

@Override
public void onClick(View view) {
switch (view.getId())
{
case R.id.add:
User user = new User(null,"小白");
userDao.insert(user);
Toast.makeText(MainActivity.this,"添加小白成功",Toast.LENGTH_LONG).show();
break;
case R.id.select:
List<User> users = userDao.loadAll();
String userName = "";
for (int i = 0; i < users.size(); i++) {
userName += users.get(i).getName();
}
Log.d("数据",userName);
tv.setText(userName);
break;
case R.id.replace:
User replaceuser=new User((long) 1,"小黑");
userDao.update(replaceuser);
Toast.makeText(MainActivity.this,"替換xiaohei成功",Toast.LENGTH_LONG).show();
break;
case R.id.delete:

userDao.deleteAll();
Toast.makeText(MainActivity.this,"刪除成功",Toast.LENGTH_LONG).show();
break;
}
}
}

布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.greendao.MainActivity">

<Button
android:text="添加"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/add" />

<Button
android:text="查询"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/add"
android:layout_toEndOf="@+id/add"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:id="@+id/select" />

<Button
android:text="修改"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/select"
android:layout_toEndOf="@+id/select"
android:layout_marginLeft="18dp"
android:layout_marginStart="18dp"
android:id="@+id/replace" />

<Button
android:text="删除"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:id="@+id/delete" />

<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/select"
android:layout_alignStart="@+id/select"
android:layout_marginBottom="165dp" />
</RelativeLayout>
 
注意:配置清单文件
Myapplication
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: