android 数据库学习整理

android 数据库学习整理

由于时间关系,就只整理常用的两款数据库,SQLite和MySQL
SQLite是一款轻量级的关系型数据库,适合在移动设备上使用,支持标准的SQL语法,遵循数据库的ACID事务,相较于SharedPreferences,后者适用于保存一些简单的数据和键值对,更复杂的数据还是需要数据库。

SQLiteOpenHelper可以帮助我们对数据库进行创建和升级,它是个抽象类,需要继承并实现它,它有两个抽象方法,onCreate和onUpgrade
SQLiteOpenHelper还有两个非常重要的实例方法:getReadableDatabase和getWritableDatabase,这两个方法都可以创建或打开一个现有的数据库,如果数据库不可写入时,前者会只读的形式访问,后者会返回异常。

构造方法一般使用参数少一点的那个(Context,db_name,Cursor(一般传null),数据库版本号)

创建数据库就在oncreate里面调用db.execSQL(创建表sql语句),在活动里面调用getWritableDatabase就可以创建数据库了。如果想更新数据库,比如再插入一张表,就需要在实现类中再实现一个sql语句,同时在活动中传入SQLiteOpenHelper的版本号+1即可

插入数据需要ContenValues作为载体,调用它的put方法就可以传入数值,传入完毕后调用数据库的insert(表名,null,values)就可以了,如果需要继续插入,记得clear一下。更新数据也是一样的,将数据存入ContenValues,再将values传入update(表名,values,第三四个参数做约束条件)
删除同理。

查询会麻烦一点,需要用到db.query方法,它的方法参数有七个,依次是表名,列名,约束条件,具体的值,group by的列,group by后的进一步约束,指定查询结果的排序方式。将查询的结果赋值给Cursor对象,调用Cursor的moveToFirst方法将数据的指针移动到第一行的位置,然后进入了一个循环中,去查询到每一行数据,在这个循环中可以通过Cursor的getColumnIndex方法获取索引,将这个索引传入到取值方法中,就可以读取到数据了。最后调用close关闭Cursor

MySQL,这里采用的是安卓通过JDBC直连数据库首先导入驱动包,在代码中try检测有无驱动,接着调用DriverManager.getConnection输入URL和用户名,密码,

try {
                    Class.forName("com.mysql.jdbc.Driver");
                }catch ( ClassNotFoundException e){
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    con = DriverManager.getConnection("jdbc:mysql://IP/task3","root","password");
                }catch (SQLException e){
                    e.printStackTrace();
                }
                try {
                    insert(con);    //插入数据
                } catch (java.sql.SQLException e) {
                // TODO Auto-generated catch block
                    e.printStackTrace();
                }
//插入数据方法中:
                Statement stmt = con1.createStatement();        //创建Statement,工作是把sql语句发送给dbms
                int row_number = stmt.executeUpdate(sql); //返回值是受影响的行数

猜你喜欢

转载自blog.csdn.net/qq_38594513/article/details/84990913
今日推荐