Android中提供SQLiteOpenHelper类,在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象。继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个方法。onCreate(SQLiteDatabase db) : 当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。 
onUpgrade(SQLiteDatabse dv, int oldVersion,int new Version):当打开数据库时传入的版本号与当前的版本号不同时会调用该方法进行更新。
首先建立一个名为MyDbHelper的类继承SQLiteOpenHelper,目的是为了创建数据库。
我们要用到三个类,
MyDbHelper(创建数据库)    UserDao(操作的方法)     User(数据)
一个Activity

代码如下:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; /**
* Created by Administrator on 2016/8/22.
*/
public class MyDbHelper extends SQLiteOpenHelper {
private final String TABLENAME="info"; //创建表名为info的数据库
private final String INFO_COLUM_ID="_id"; //依次为表中的数据,其中“_id”表示id为主键
private final String INFO_COLUM_NAME="name"; //其次为name,pwd,age,img
private final String INFO_COLUM_PWD="pwd";
private final String INFO_COLUM_AGE="age";
private final String INFO_COLUM_IMG="img"; public MyDbHelper(Context context){ super(context,"user.db",null,1); //user.db表示数据库名 1表示版本号,以后如果修改代码后,改版本号进行更新 }
public MyDbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
} @Override
public void onCreate(SQLiteDatabase db) {
StringBuilder sql=new StringBuilder();
sql.append(" Create table if not exists ");
sql.append(TABLENAME+"(");
sql.append(INFO_COLUM_ID+" integer primary key autoincrement,"); //integer primary key autoincrement表示主键
          sql.append(INFO_COLUM_NAME+" varchar(10),");                        //varchar表示长度
sql.append(INFO_COLUM_PWD+" varchar(10),");
sql.append(INFO_COLUM_AGE+" varchar(10),");
sql.append(INFO_COLUM_IMG+" varchar(10)");
sql.append(")");
db.execSQL(sql.toString());
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql=" drop table if exist"+TABLENAME; //更新时调用
db.execSQL(sql);
onCreate(db); }
}
UserDao类中写增删改查的方法

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import java.util.ArrayList;
import java.util.List; /**
* Created by Administrator on 2016/8/22.
*/
public class UserDao {
private MyDbHelper myDbHelper;
public UserDao(Context context){
myDbHelper=new MyDbHelper(context);
}
//插入数据
public void insert(User user){
SQLiteDatabase db=myDbHelper.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("name",user.getName());
cv.put("pwd",user.getPwd());
cv.put("age",user.getAge());
cv.put("img",user.getImg());
db.insert("info", null, cv); db.close();
}
//删除所有数据
public void delete(){
SQLiteDatabase db=myDbHelper.getWritableDatabase();
db.delete("info", null, null);
db.close();
}
//删除一条数据
public void deleteUser(String id){
SQLiteDatabase db=myDbHelper.getWritableDatabase();
db.delete("info","_id=?",new String []{id});
db.close();
}
//查询一条数据
public User searchUser(String id){
SQLiteDatabase db=myDbHelper.getReadableDatabase();
Cursor cs= db.query("info", null, "_id = ?", new String[]{id}, null, null, null);
User user=null;
if(cs.moveToNext()){
user=new User();
user.setUserId(cs.getInt(cs.getColumnIndex("_id")));
user.setName(cs.getString(cs.getColumnIndex("name")));
user.setPwd(cs.getString(cs.getColumnIndex("pwd")));
user.setAge(cs.getString(cs.getColumnIndex("age")));
user.setImg(cs.getString(cs.getColumnIndex("img")));
}
cs.close();
db.close();
return user;
}
//查询所有数据
public List search(){
SQLiteDatabase db=myDbHelper.getReadableDatabase();
Cursor cs=db.query("info", null, null, null, null, null, null);
User user=null;
List<User> list=new ArrayList<>();
while (cs.moveToNext()){
user=new User();
user.setUserId(cs.getInt(cs.getColumnIndex("_id")));
user.setName(cs.getString(cs.getColumnIndex("name")));
user.setPwd(cs.getString(cs.getColumnIndex("pwd")));
user.setAge(cs.getString(cs.getColumnIndex("age")));
user.setImg(cs.getString(cs.getColumnIndex("img")));
list.add(user);
}
cs.close();
db.close();
return list;
}
//修改数据
public void update(User user){
SQLiteDatabase db=myDbHelper.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("name",user.getName());
cv.put("pwd", user.getPwd());
cv.put("age", user.getAge());
// cv.put("img",user.getImg()); String id=String.valueOf(user.getUserId());
db.update("info",cv,"_id=? ",new String[]{id});
db.close();
} user类
public class User {
private int userId;
private String name;
private String pwd;
private String age;
private String img; public int getUserId() {
return userId;
} public void setUserId(int userId) {
this.userId = userId;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPwd() {
return pwd;
} public void setPwd(String pwd) {
this.pwd = pwd;
} public String getAge() {
return age;
} public void setAge(String age) {
this.age = age;
} public String getImg() {
return img;
} public void setImg(String img) {
this.img = img;
} @Override
public String toString() {
return "User{" +
"userId=" + userId +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
", age='" + age + '\'' +
", img='" + img + '\'' +
'}';
}
}

}
Activity中的代码如下
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast; import com.example.administrator.ch02.entity.User;
import com.example.administrator.ch02.entity.UserDao; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity {
private EditText name,age,pwd; //布局中的EditView
private Button inster,search,delete,update; //布局中的Button
private TextView show; //用于显示数据
private UserDao userDao; //dao类
private Spinner spinner; //布局中的Spinner
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name= (EditText) findViewById(R.id.name);
age= (EditText) findViewById(R.id.age);
pwd= (EditText) findViewById(R.id.pwd);
inster= (Button) findViewById(R.id.inster1);
search= (Button) findViewById(R.id.search);
spinner= (Spinner) findViewById(R.id.spinner);
delete= (Button) findViewById(R.id.delete);
update= (Button) findViewById(R.id.update);
userDao=new UserDao(this);
inster.setOnClickListener(new View.OnClickListener() { //增加数据
@Override
public void onClick(View v) {
User user=new User();
user.setName(name.getText().toString());
user.setAge(age.getText().toString());
user.setPwd(pwd.getText().toString());
userDao.insert(user);
Toast.makeText(getBaseContext(), "新增成功", Toast.LENGTH_SHORT).show(); }
});
search.setOnClickListener(new View.OnClickListener() { //查询数据
@Override
public void onClick(View v) {
List<User> list=userDao.search();
// show.setText(list.toString());
List myDate=new ArrayList();
for(User u:list){
myDate.add(u.getUserId()+":"+u.getName());
}
ArrayAdapter aa=new ArrayAdapter(getBaseContext(),android.R.layout.simple_list_item_1,myDate);
spinner.setAdapter(aa);
}
});
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { //spinner点击事件
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String str = spinner.getSelectedItem().toString();
if (!str.equals("")) {
String id1 = str.split(":")[0];
User user = userDao.searchUser(id1);
name.setText(user.getName().toString());
age.setText(user.getAge().toString());
pwd.setText(user.getPwd().toString());
}
} @Override
public void onNothingSelected(AdapterView<?> parent) { }
});
delete.setOnClickListener(new View.OnClickListener() { //删除数据
@Override
public void onClick(View v) {
String str = spinner.getSelectedItem().toString();
if (!str.equals("")) {
String id = str.split(":")[0];
userDao.deleteUser(id);
} }
});
update.setOnClickListener(new View.OnClickListener() { //修改数据
@Override
public void onClick(View v) {
String str = spinner.getSelectedItem().toString();
if (!str.equals("")) {
String id = str.split(":")[0];
User user=userDao.searchUser(id);
user.setName(name.getText().toString());
user.setPwd(pwd.getText().toString());
user.setAge(age.getText().toString());
userDao.update(user);
}
}
});
}
}
 
 


 

利用SQLiteOpenHelper创建数据库,进行增删改查操作的更多相关文章

  1. 通过jdbc连接MySql数据库的增删改查操作

    一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...

  2. TP5.1:数据库的增删改查操作(基于面向对象操作)

    我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...

  3. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  4. python web.py操作mysql数据库,实现对数据库的增删改查操作

    使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...

  5. JDBC 1 利用Statement对数据库进行增删改查

    准备工作 1新建po类:User private int id; private String name; private String pwd; set,get方法省略 2  新建UserDao类, ...

  6. TP5.1:数据库的增删改查操作(基于数据库操作)

    1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...

  7. mogoose 创建数据库并增删改查

    下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); ...

  8. greendao对SQLite数据库的增删改查操作

    利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...

  9. 创建支持CRUD(增删改查)操作的Web API(二)

    一:准备工作 你可以直接下载源码查看 Download the completed project.     下载完整的项目 CRUD是指“创建(C).读取(R).更新(U)和删除(D)”,它们是四个 ...

  10. JavaWeb程序利用Servlet的对SQLserver增删改查操作

    声明:学了几天终于将增删改查的操作掌握了,也发现了一些问题,所以总结一下. 重点:操作数据库主要用的是SQL语句跟其他无关. 一:前提知识:PreparedStatement PreperedStat ...

随机推荐

  1. 【Java】Java里String 的equals和==

    Java里面有对象和对象的引用的概念,在String方面,==比较的是引用,equals比较的是对象的具体值. String s1 = new String("abc");Stri ...

  2. The Glorious Karlutka River =)

    sgu438:http://acm.sgu.ru/problem.php?contest=0&problem=438 题意:有一条东西向流淌的河,宽为 W,河中有 N 块石头,每块石头的坐标( ...

  3. poj 2431 Expedition 贪心

    简单的说说思路,如果一开始能够去到目的地那么当然不需要加油,否则肯定选择能够够着的油量最大的加油站加油,,不断重复这个贪心的策略即可. #include <iostream> #inclu ...

  4. Android程序安装后在模拟器上不显示,并且控制台显示The launch will only sync the application package on the device!

    初学安卓,今天写了一个小例子,可是eclipse控制台却提示 No Launcher activity found! The launch will only sync the application ...

  5. android.graphics.Matrix

    Matrix类包含了一个3x3的矩阵用来改变坐标,它没有一个构造器来初始化它里边的内容,所以创建实例后需要调用reset()方法生成一个标准matrix,或者调用set..一类的函数,比如setTra ...

  6. WordPress ‘get_allowed_mime_types’函数安全漏洞

    漏洞名称: WordPress ‘get_allowed_mime_types’函数安全漏洞 CNNVD编号: CNNVD-201309-170 发布时间: 2013-09-13 更新时间: 2013 ...

  7. 在代码中创建Drawable资源

    如何在代码中创建圆环: 先看效果图 代码; import android.graphics.drawable.GradientDrawable; GradientDrawable circle = n ...

  8. 字符串(后缀数组):HAOI2016 找相同子串

    [HAOI2016]找相同子串 [题目描述] 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两个子串中有一个位置不同. [输入格式] 两行,两个字符 ...

  9. WIA Property Constant Definitions

    (@http://msdn.microsoft.com/en-us/library/windows/desktop/ms630202(v=vs.85).aspx): const DeviceID = ...

  10. [Citrix NetScaler] 简述

    额 就这个题目 Citrix NetScaler 是一个VPN,一个代理,一个Gateway的存在,一个Citrix的产品 首先是我们利用Citrix NetScaler的测试环境: 架构上分2种: ...