在eclipse中需要自定义创建表工具类:比如;1、写一个DBHelper继承自SQLiteOpenHelperpublicclassDBHelperextendsSQLiteOpenHelper{//数据库的版本privatefinalstaticintDB_VERSION=1;//数据库名privatefinalstaticStringDB_NAME="ladengdb";privateContextmContext;//我们直接用super调用父类的构造方法,这样我们在实例化DBHelper的时候只需要传入一个上下文参数就可以了publicDBHelper(Contextcontext){super(context,DB_NAME,null,DB_VERSION);thismContext=context;}//数据库不存在的时候,调用这个方法@OverridepublicvoidonCreate(SQLiteDatabasedb){createTables(db,0,0);}//版本号发生变化的时候,调用这个方法@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//1删除原来的表//2调用onCreate重新创建数据库}/建表语句,只需要一行就能建一个表/privatevoidcreateTables(SQLiteDatabasedb,intoldVersion,intnewVersion){//createTable(Movieclass)返回的是sql建表语句//dbexecSQL(sql)执行这条建表语句dbexecSQL(createTable(Movieclass));}/如果没传表明的话,默认使用类名作为表明@paramclazz实体类@return/privateStringcreateTable(Classclazz){returncreateTable(clazz,clazzgetSimpleName());}/真正的建表方法@paramclazz实体类@paramtableName表明@returnsql建表语句/privateStringcreateTable(Classclazz,StringtableName){//实例化一个容器,用来拼接sql语句StringBuffersBuffer=newStringBuffer();//sql语句,第一个字段为_ID主键自增,这是通用的,所以直接写死sBufferappend("createtableifnotexists"+tableName+""+"(_IDINTEGERPRIMARYKEYAUTOINCREMENTNOTNULL,");//得到实体类中所有的公有属性Field[]fields=clazzgetFields();//遍历所有的公有属性for(Fieldfield:fields){//如果属性不为_id的话,说明是新的字段if(!fieldgetName()equals("_id")){//得到属性的基本数据类型Stringtype=fieldgetType()getSimpleName();//如果是String类型的属性,就把字段类型设置为TEXTif(typeequals("String")){sBufferappend(fieldgetName()+"TEXT,");//如果是int类型的属性,就把字段类型设置为INTEGER}elseif(typeequals("int")){sBufferappend(fieldgetName()+"INTEGER,");}}}//将最后的逗号删除sBufferdeleteCharAt(sBufferlength()-1);//替换成);表明sql语句结束sBufferappend(");");//返回这条sql语句returnsBuffertoString();}}2、Movie实体类,实体类中的属性就是表中的字段publicclassMovie{publicStringtitle;publicintrating;publicStringyear;publicStringgenre;publicStringcountry;publicintprice;}3、在MainActivityjava中添加如下代码publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ superonCreate(savedInstanceState); setContentView(Rlayoutactivity_main); //实例化我们的DBHelper DBHelperdbHelper=newDBHelper(this); //调用了这个方法后,DBHelper中的onCreate才会执行 dbHelpergetReadableDatabase(); }}4、创建结果:[解决办法]
单纯使用的话,只需要一个SystemDataSQLiteDLL就行了。照我打的名字在网上搜肯定有。不要考虑版本,版本肯定是越高越好。
使用sqlite3exe命令行工具就行了
自增列列名使用Interger并且作为主键,而不是int这个是有区别的
如果要有个维护界面的话,下载一个sqladmin之类的就OK了。
sql的语法基本上和sqlserver一模一样,学起来没什么门槛。没接触过嵌入式软件。
SQL和SQLLite应该差不多吧,SQL嵌入式是一个方向。
SQL已经开放了C语言应用程序的接口像ODBC之类都是可以的。你百度下应该有相关资料。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)