package com.android.caij.xutilsdemo.fragment; import java.util.Date; import java.util.List; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.android.caij.xutilsdemo.R; import com.android.caij.xutilsdemo.domain.Student; import com.lidroid.xutils.DbUtils; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.db.sqlite.Selector; import com.lidroid.xutils.db.sqlite.WhereBuilder; import com.lidroid.xutils.exception.DbException; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; public class DbFragment extends Fragment { @ViewInject(R.id.db_add) private Button db_add; @ViewInject(R.id.db_find) private Button db_find; @ViewInject(R.id.db_update) private Button db_update; @ViewInject(R.id.db_delete) private Button db_delete; @ViewInject(R.id.tv_info) private TextView info; private DbUtils db; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.db_fragment_view, container, false); ViewUtils.inject(this, view); db = DbUtils.create(this.getActivity()); // 创建方式有多个重载, 实际项目中可能选择这个 因为数据库升级,后期数据维护都用的到 // DbUtils.create(context, dbDir, dbName, dbVersion, dbUpgradeListener) db.configDebug(true); // debug模式 会输入sql语句 db.configAllowTransaction(true); // 允许事务 return view; } @OnClick(R.id.db_add) public void add(View view) { try { Student student = new Student(); student.setName("张三"); student.setId(10086); student.setAge(18); student.setMan(true); student.setTime(new Date()); student.setDate(new java.sql.Date(new Date().getTime())); db.save(student); student = new Student(); student.setName("李四"); student.setId(10010); student.setAge(15); student.setMan(true); student.setTime(new Date()); student.setDate(new java.sql.Date(new Date().getTime())); db.save(student); student = new Student(); student.setName("小红"); student.setId(10000); student.setAge(15); student.setMan(false); student.setTime(new Date()); student.setDate(new java.sql.Date(new Date().getTime())); db.save(student); Toast.makeText(this.getActivity(), "添加成功", Toast.LENGTH_SHORT).show(); } catch (DbException e) { e.printStackTrace(); } } @OnClick(R.id.db_find) public void find(View view) { try { String temp = ""; // 查找全部 // List<Student> students = db.findAll(Student.class); // for (Student student : students) { // temp = temp + student.toString() + "\n"; // } // 主键查找 // Student student = db.findById(Student.class, 10086); // temp = student.toString(); //条件查找 List<Student> students = db.findAll(Selector.from(Student.class) .where("name", "=", "李四") .where(WhereBuilder.b("id", "=", 10010)).orderBy("name").limit(0).offset(10)); if (students == null) { Toast.makeText(this.getActivity(), "没有数据请先添加数据", Toast.LENGTH_SHORT).show(); return; } for (Student student : students) { temp = temp + student.toString() + "\n"; } info.setText(temp); } catch (DbException e) { e.printStackTrace(); } } //下面两个暂时不实现, 看时间。其实也类似。 @OnClick(R.id.db_update) public void update(View view) { } @OnClick(R.id.db_delete) public void delete(View view) { } }