DBUtils是java编程中的数据库操作实用工具,小巧简单实用,
1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作;
2.对于数据表的写操作,也变得很简单(只需写sql语句)
3.可以使用数据源,使用JNDI,数据库连接池等技术来优化性能--重用已经构建好的数据库连接对象,而不像php,asp那样,费时费力的不断重复的构建和析构这样的对象。
使用DBUtils简单实现增删改查:
1、首先写布局,就四个按钮增删改查
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:id="@+id/input_data"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/add"
android:layout_marginTop="10dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="添加" />
<Button
android:id="@+id/delete"
android:layout_marginTop="10dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除" />
<Button
android:id="@+id/update"
android:layout_marginTop="10dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="修改" />
<Button
android:id="@+id/query"
android:layout_marginTop="10dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查找" />
</LinearLayout>
2、新建一个bean类包括用户的id、姓名、年龄等,可自定义
package com.example.apple.dbutils.bean;
/**
* Created by apple on 16/12/28.
*/
public class Student {
private int id;
private String name;
private int age;
public Student() {
}
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3、在主代码中实现增删改查功能,代码比较简单自己看注释
package com.example.apple.dbutils;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.apple.dbutils.bean.Student;
import com.lidroid.xutils.DbUtils;
import com.lidroid.xutils.db.sqlite.Selector;
import com.lidroid.xutils.exception.DbException;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button add;
private Button delete;
private Button update;
private Button query;
private EditText inputData;
private final String TAG = "MainActivity";
private DbUtils dbUtils;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
add = (Button)findViewById(R.id.add);
add.setOnClickListener(this);
delete = (Button)findViewById(R.id.delete);
delete.setOnClickListener(this);
update = (Button)findViewById(R.id.update);
update.setOnClickListener(this);
query = (Button)findViewById(R.id.query);
query.setOnClickListener(this);
inputData = (EditText)findViewById(R.id.input_data);
//创建数据库并且命名 dbUtilsDb
dbUtils = DbUtils.create(this,"dbUtilsDb");
//创建一张表(如果存在才创建) javabean Student name gender age id
//表名是javabean 的全路径名称
try {
dbUtils.createTableIfNotExist(Student.class);
} catch (DbException e) {
e.printStackTrace();
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.add://添加数据
try {
List<Student> studentList = new ArrayList<>();
for (int i = 0; i<10;i++){
studentList.add(new Student(i,"张三"+i,i+10));
}
dbUtils.saveAll(studentList);
} catch (DbException e) {
e.printStackTrace();
}
break;
case R.id.delete://删除数据
try {
List<Student> stus = dbUtils.findAll(Selector.from(Student.class));
dbUtils.delete(stus.get(0));//删除第一个数据
// dbUtils.deleteAll(stus);//删除全部数据
// dbUtils.deleteById(Student.class, WhereBuilder.b());
// dbUtils.dropTable(Student.class);
// dbUtils.dropDb();
} catch (DbException e) {
e.printStackTrace();
}
break;
case R.id.update://更新数据
try {
List<Student> stus = dbUtils.findAll(Selector.from(Student.class));
Student stu = stus.get(0);//修改第一个数据的年龄
stu.setAge(50);
dbUtils.update(stu);
} catch (DbException e) {
e.printStackTrace();
}
break;
case R.id.query://查询数据
try {
List<Student> findAll = dbUtils.findAll(Student.class);
if (findAll!=null) {
for (Student student : findAll) {
Log.e(TAG, "id:" + student.getId() + "..name:" + student.getName() + "..age:" + student.getAge());
}
}else {
Toast.makeText(this,"数据库数据为空",Toast.LENGTH_SHORT).show();
}
} catch (DbException e) {
e.printStackTrace();
}
break;
default:
break;
}
}
}
最后记得在libs中加入xUtils-2.6.14.jar,这个可以网上下载一个,代码下载地址
http://download.csdn.net/detail/u011324501/9724044