观察到到网上介绍SQLite的使用,大多数是属于比较复杂的或者不易理解的,没有特别简单适合零基础去使用的教程
本人就来写一写容易的SQLite的存储数据的使用!
android应用框架中对SQLite的API进行的封装,可以使用java操作SQLite数据库
SQLiteDatabase封装了各种数据操作。
SQLiteOpenhelper用于管理数据库,创建表结构及初始化数据。
首先我们创建一个项目,项目中包含一个xml文件和两个JAVA文件。
xml →
<ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="输入你的名字"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/sql_name"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="输入你的年龄"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/sql_age"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="输入你的性别"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/sql_sex"/> <TextView android:id="@+id/sql_tv" android:textSize="30sp" android:layout_width="match_parent" android:layout_height="200dp"/> <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:text="增加一条数据(sql)" android:id="@+id/sql" android:onClick="insert" <Buttonandroid:layout_height="wrap_content" android:layout_width="match_parent" android:text="查询数据" android:onClick="select"</LinearLayout></ScrollView>
创建一个JAVA文件 我们把它取名叫 my_sql
public class my_sql extends SQLiteOpenHelper { final static String db_lzl="lzl.db"; //数据库名 static int DB_VIERSON=1; //数据库的版本 // ,String name,SQLiteDatabase.CursorFactory factory,int version public my_openhelper(Context context){ //上下文,数据库名,,数据库版本号 super(context,db_lzl,null,DB_VIERSON); } @Override public void onCreate(SQLiteDatabase db) { //创建数据库 String sql=" create table lzl(" + " id integer primary key autoincrement," + " name varchar(8)," + " age int," + " sex char(1) default '女');"; db.execSQL(sql); //执行 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //升级或者更新的时候调用 } }SQLIteOpenHelper是一个抽象类
所以我们需继承SQLIteOpenHelper时 必须重写两个方法 onCreate() 和 onUpgrade()
还需写一个构造方法。
最后在主界面对应的JAVA文件中实现最后一步
SQLiteOpenHelper openHelper; SQLiteDatabase db; private EditText sql_name,sql_age,sql_sex; private TextView sql_tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sql_name=(EditText)findViewById(R.id.sql_name); sql_age= (EditText) findViewById(R.id.sql_age); sql_sex= (EditText) findViewById(R.id.sql_sex); sql_tv=(TextView)findViewById(R.id.sql_tv); openHelper =new my_openhelper(this);//调用 db=openHelper.getWritableDatabase();//真正的数据库对象 } public void insert(View view){ String name=sql_name.getText().toString().trim();//用户输入的内容 String age= sql_age.getText().toString().trim(); String sex=sql_sex.getText().toString().trim(); if(view.getId()==R.id.sql){ db.execSQL("insert into lzl(name,age,sex)values(?,?,?)",new Object[]{name,age,sex}); }Toast.makeText(MainActivity.this, "插入成功", Toast.LENGTH_SHORT).show(); }
这样子就可以把数据插入到你创建的数据库中
最后就是来查询数据了:
public void select(View view){ String sql="select * from lzl"; String[] st_sql={"id","name","age","sex"}; Cursor cur=db.query("lzl",st_sql,null,null,null,null,null); StringBuilder sb=new StringBuilder(); while(cur.moveToNext()){ // for(int i=0;i<cur.getColumnNames().length;i++){ //通过列名获取 sb.append(cur.getString(i)+""); } sb.append("\n"); } sql_tv.setText(sb.toString());Toast.makeText(MainActivity.this, "查询成功", Toast.LENGTH_SHORT).show(); }
凭这么几句话就可以简单的查询了。 谢谢你的观看 不足之处 请多指教 谢谢!