`
yand789
  • 浏览: 22365 次
社区版块
存档分类
最新评论

myhelp extends SQLiteOpenHelper 类中的onCreate方法 没被调用时,构造函数里调onCreate

阅读更多
public OrderDataBaseUtil(Context ctx, String tbname, String cols[], String cons[]) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);

// super(context, name, factory, version);
/**
* context  to use to open or create the database
* name of the database file, or null for an in-memory database
* factory to use for creating cursor objects, or null for the default
* version number of the database (starting at 1); if the database is older, onUpgrade(SQLiteDatabase, int, int) will be used to upgrade the database 
*/
tableName = tbname;
columns = cols;
constraints = cons;

Log.i("OrderDataBaseUtil constructor","OrderDataBaseUtil");

//由于这里,onCreate()数据库第一次创建执行,只执行一次,以后不再执行
//所以先判断table存在与否
//不存在,调用onCreate

SQLiteDatabase sdb = openWriteDB();
onCreate(sdb);


}

@Override
public void onCreate(SQLiteDatabase db) {

Log.i("OrderDataBaseUtil::onCreate","OrderDataBaseUtil");

StringBuilder sql = new StringBuilder();
// if not exists,不需要知道表是否存在,在创建表的时候加上if not exists
sql.append("CREATE TABLE if not exists ").append(tableName); //sql.append("CREATE TABLE ").append(tableName);
sql.append("(").append(DEFAULT_ID).append(",");
for(int i = 0; i < columns.length; i++){
if(i < columns.length -1)
sql.append(columns[i]).append(" ").append(constraints[i]).append(",");
else
sql.append(columns[i]).append(" ").append(constraints[i]);
}
sql.append(")");
Log.i("CREATE_TB==>>", sql.toString());
db.execSQL(sql.toString());
}
分享到:
评论

相关推荐

    Java中extends类的继承

    Java中extends类的继承

    Android 自定义View的构造函数详细介绍

    每个构造函数分别调用基类的构造函数,再调用一个公共的初始化方法做额外初始化。 public class MyView extends ListView { public MyView(Context context) { super(context); sharedConstructor(); } public...

    php构造函数实例讲解

    PHP官网定义:复制代码 代码如下:构造函数是类中的一个特殊函数,当使用 new 操作符创建一个类的实例时,构造函数将会自动调用。当函数与类同名时,这个函数将成为构造函数。如果一个类没有构造函数,则调用基类的...

    php构造函数的继承方法

    第一种情况:子类没有定义构造函数时,默认继承。例子: &lt;?php class A{ public $name; function __construct(){ echo $this-&gt;name="小强"; } } class B extends A{ } $bb = new B(); ?&gt; 输出结果:...

    类继承构造方法super()调用可以吃吗

    //调用父类的构造方法 x=5;//super( ) 要放在方法中的第一句 System.out.println("in SubClass :x="+x); } void doSomething( ) { super.doSomething( ); //调用父类的方法 System.out.println("in ...

    基于Android SQLiteOpenHelper CRUD 的使用

    代码如下:public class DBOpenHelper extends SQLiteOpenHelper { // 类没有实例化,不能用作父类构造器的参数,必须声明为静态 public DBOpenHelper(Context context, int version) { super(context, “SQLite....

    java面试题静态加载顺序构造方法

    Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 ...2、调用类的构造方法时先调用父类的构造方法,在调用子类的构造方法 3、类初始化时,先初始化类的属性成员,在执行构造方法。

    android连接SQLite数据库源代码

    // 其实是调用四个构造的函数的方法 public DataBaseHelper(Context context, String name, int version) { this(context, name, null, version); } // 该函数是在第一次创建数据库的时候执行,实际上是在第一...

    Java中this与super的区别

    this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。 要记住的几个关键点是: 在构造方法中this与super不能共存;其次有this或super出现的地方必须是构造方法的第1句; 静态方法...

    extends继承的使用方法练习

    继承的使用方法,extends使用的小java程序。

    Java复习题及答案

    答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。 2、父类的构造方法是否可以被子类覆盖(重写)? 答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不...

    java事件监听方法和代码

    } 这个监听器定义了3个动作:键盘按下去调用keyPressed方法,键盘抬起来调用keyReleased,键盘被敲击一次调用keyTyped。 事件监听器是需要注册才能使用的,注册方法如下: public void add(&lt;ListenerType&gt;listener)...

    Java面试32个经典问题 .doc

    这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重写...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    Java 重载、重写、构造函数详解

    当一个类继承它的父类方法时,都有机会重写该父类的方法。一个特例是父类的方法被标识为final。重写的主要优点是能够定义某个子类型特有的行为。  class Animal {  public void eat(){  System.out.println ...

    JAVA基础知识精华总结 收藏

    (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且...

    Java面向对象总结

    调用子类的构造方法时,会先调用父类的构造方法。默认隐式调用父类无参数的构造方法 4.如果要在子类的构造方法中显式调用父类的构造方法。使用super(参数列表),但是这行代码必须是在 子类的构造方法的第一行。

    公司java笔试题汇总.doc

    实例方法可直接调用本类的类方法 如下代码: class Super { public Integer getLenght() { return new Integer(4); } } public class Sub extends Super { public Long getLenght() { return new Long(5); } ...

    Android代码-cordova调用安卓原生activity插件

    //回调函数中的data表示从原生activity传回来的数据,已处理为json对象 alert&#40;data.id "::" data.name&#41;; }); 原生安卓activity接收参数和回传参数简单示例 public class MyActivity extends Activity { ...

Global site tag (gtag.js) - Google Analytics