项目结构
一个主活动+一个SQLite工具类
工具类,SQLiteOpenHepler这是android提供的帮助类,但是是抽象类,我们只需继承他就好了。
注意。实现它的两个方法还是报红,那是因为没有构造方法。其中有两个构造方法可重写,一般用参数少一点的就可以了。
参数二是 数据库名 参数三传null 就好 参数四版本号
public class MyDBHelper extends SQLiteOpenHelper { //sql语句 public static String CREATE_Book="create table Book(" +"id integer primary key ," +"author text," +"name text)"; private Context mContext; public MyDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); this.mContext=context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_Book);//执行sql语句 } /** * 数据库版本升级用 * @param db * @param oldVersion * @param newVersion */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }MainActivity
注意这里用到了getwritableDatabase方法。这是sqlitehepler两个实例方法之一。用来创建或则打开一个数据库(已存在就打开),返回一个对数据库操作的对象
public class MainActivity extends AppCompatActivity { TextView tv_createTable; MyDBHelper myDBHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建sqlite操作对象 myDBHelper=new MyDBHelper(this,"data",null,1); tv_createTable= (TextView) findViewById(R.id.tv_createTable); tv_createTable.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /** * 创建或则打开数据库(如果数据库存在,则直接打开) */ Log.i("aaa","aaa"); myDBHelper.getWritableDatabase(); } }); } }常见问题
1,没有添加权限,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>2.sql语句出错。
程序执行完之后,
打开cmd 查看数据库建好了没 执行adb shell
注意:这里需要配置环境变量。 否则提示找不到命令
、
然后进入 data/data/你程序的包名/databases/
输入 ls 查询,会报没有权限。
这里前提是手机要root 然后直接执行su获取权限
这里列出数据库的列表。其中有一个是自动生成的不用。data就是我以上代码创建的数据库了
本文纯属学习笔记用。能帮到和我一样的新手最好了。