SQLiteDatabase
2015-12-03 00:36
357 查看
DbUtils
public class DbUtils{ public static final String DATABASE_NAME="info"; //数据库名称 public static final int DATABASE_VERSION=1; //数据库版本 public static final String TABLE_NAME="student"; //创建表名 public static final String STUDENT_ID="_id"; //表 _id 字段 public static final String STUDENT_NAME="name"; //表name字段 public static final String STUNDENT_AGE="age"; //表age 字段 }
MySqliteHelper
public class MySqliteHelper extends SQLiteOpenHelper{ private static String TAG="MySqliteHelper"; public MySqliteHelper(Context context,String name,CursorFactory factory,int version){ super(context,name,factory,version); } public MySqliteHelper(Context context){ super(context,DbUtils.DATABASE_NAME,null,DbUtils.DATABASE_VERSION); } /** 表示当前数据库被创建时回调的方法 数据库创建的同时创建数据表student */ public void onCreate(SQLiteDatabase db){ String sql = "create table "+DbUtils.TABLE_NAME+"("+DbUtils.STUDENT_ID+" integer primary key,"+DbUtils.STUDENT_NAME+" varchar(10),"+DbUtils.STUNDENT_AGE+" integer"; db.execSQL(sql); } /** 表示数据库版本发生改变时回调的方法 */ public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){ if(newVersion>oldVersion){ //版本更新后的具体操作 //TODO 待实现 } } /** 表示数据库被打开时回调的方法 */ public void onOpen(SQLiteDatabase db){ super.onOpen(db); } }
DbManager
public class DbManager{ //获取helper对象的方法 public static MySqliteHelper getInstance(Context context){ if(helper==null){ helper = new MySqliteHelper(context); } return helper; } /** 根据传递的sql语句指定相应的操作 */ public static void execuDataSql(SQLiteDatabase db,String sql){ if(db!=null){ if(!"".equals(sql)&&sql!=null){ db.execSQL(sql); } } } /** 采用api中提供的方法插入数据 */ public static long insertData(SQLiteDatabase db,String table,String nullColumnHack,ContentValues values){ long count=0; if(db!=null){ count = db.insert(table,nullColumnHack,values); } return count; } /** 采用api提供的方法修改数据 */ public static int updateData(SQLiteDatabase db,String table,ContentValues values,String whereClause,String[] whereArgs){ int count=0; if(db!=null){ count = db.update(table,values,whereClause,whereArgs); } return count; } /** 采用api方法删除数据 */ public static int deleteData(SQLiteDatabase db,String table,String whereClause,String[] whereArgs){ int count = 0; if(db!=null){ count = db.delete(table,whereClause,whereArgs); } return count; } /** 关闭指定的数据库 */ public static void closeDb(SQLiteDatabase db){ if(db!=null){ db.close(); } } }
MainActivity
public class MainActivity extends Activity{ private MySqliteHelper helper; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); helper = DbManger.getInstance(MainActivity.this); } // 点击按钮创建数据库 public void create_database(View view){ /* 调用helper类的getReadableDatabse() getWriteableDatabase()创建或者打开数据库 获取数据库对象 如果该数据库不存在则创建,如果该数据库存在则打开数据库 getReadableDatabase() getWriteableDatabase() 默认情况下返回的都是可读可写的数据库对象 如果出现一些问题例如磁盘已满或者是数据库本身是只读权限getReadableDatabase()方法返回的就是只读的数据库对象 */ SQLiteDatabase db= helper.getReadableDatabase(); } //根据点击的按钮执行相应的增删改操作 public void click(View view){ switch(view.getId()){ case R.id.button_insert: SQLiteDatabase db =helper.getWritableDatabase(); //打开数据库 //对数据库操作 String sql = "insert into "+Dbutils.TABLE_NAME+" values(1,'zhangsan',30)"; DbManger.execDataSql(db,sql); String sql2 = insert into "+Dbutils.TABLE_NAME+" values(2,'lisi',26)"; Dbutils.execDataSql(db,sql2); //关闭数据库 DbManger.closedDb(db); break; case R.id.button_update://点击按钮完成修改数据 db =helper.getWritableDatabase(); String sql3 = "update from "+Dbutils.TABLE_NAME+" where "+Dbutils.STUDENT_ID+"=1"; DbManger.execDataSql(db,sql3); DbManger.closedDb(db); break; case R.id.button_delete://点击按钮删除数据 db = helper.getWritableDatabase(); String sql4="delete from "+Dbutils.TABLE_NAME+" where "+Dbutils.STUDENT_ID+" =1"; DbManger.execDataSql(db,sql4); DbManger.closedDb(db); break; } } /** 采用api提供的方法增删改操作数据表 */ public void onClick(View view){ switch(view.getId()){ case R.id.button_apiinsert: //点击按钮采用api形式插入数据 SQLiteDatabase db=helper.getWritableDatabase(); ContentValues values=new ContentValues(); values.put(Dbutils.STUDENT_ID,3); //put(表示当前插入数据表的字段,表示当前插入key指定字段的值) values.put(Dbutils.STUDENT_NAME,"小鹿"); values.put(Dbtils.STUDENT_AGE,23); long count=DbManger.insertData(db,Dbutils.TABLE_NAME,null,values); if(count>0){ Toast.makeText(MainActivity.this,"插入数据成功",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this,"插入数据失败",Toast.LENGTH_SHORT).show(); } DbManger.closeDb(db); break; case R.id.button_apiupdate: // 点击按钮采用api形式修改数据 db = helper.getWritableDatabase(); ContentValues values2=new ContentValues(); values2.put(Dbutils.STUDENT_NAME,"心心"); values2.put(Dbutils.STUDENT_AGE,2); int count1=DbManger.updateData(db,Dbutils.TABLE_NAME,values2,""+Dbutils.STUDENT_ID+"=?",new String[]{"3"}); if(count>0){ Toast.makeText(MainActivity.this,"修改数据成功",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this,"修改数据失败",Toast.LENGTH_SHORT).show(); } DbManger.closeDb(db); break; case R.id.button_apidelete: db =helper.getWritableDatabase(); int count2=DbManger.deleteData(db,Dbutils.TABLE_NAME,Dbutils.STUDENT_ID+"=2",null); if(count>2){ Toast.makeText(MainActivity.this,"删除数据成功",Toase.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this,"删除数据失败",Toast.LENGTH_SHORT).show(); } DbManger.closeDb(db); break; } } }
相关文章推荐
- unqlite安装/使用/测试
- spring-data-redis 使用
- oracle 触发器number判断空值,:NEW赋值,for each row,sql变量引号,to_date,to_char
- Oracle的10046事件
- mysql 导出导入sql文件
- SQL Server 【CTE + FOR XML PATH】使用笔记~
- 深入学习SQL Server聚合函数算法优化技巧
- 图文教程mssqlserver数据库导出到另外一个数据库的方法
- SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(上)
- SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(中)
- SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(下)
- MySQL如何清空慢查询文件
- Mysql 数据库死锁过程分析(select for update)
- sql综合练习
- 十步完全理解SQL
- mysql常用数据类型的使用方式--字符型
- 数据库SQL优化大总结之 百万级数据库优化方案
- ORACLE创建表空间、创建用户以及赋值权限
- JAVA基础之数据库编程
- win8 mysqlzip install