首页天道酬勤java.lang.noclassdeffouderror,autoid怎么使用

java.lang.noclassdeffouderror,autoid怎么使用

张世龙 05-13 00:11 92次浏览

在JAVA中使用eXtremeDB autoid主要存在以下问题:

定义

插入数据

取得了记录。 如何获取autoid

知道autoid并获取记录的方法

定义自动识别

在定义类之前添加注释。 请注意,@persistent(autoid=true ) eXtremeDB中的autoid只是在类级别定义,而不需要单独定义一列表示。

插入数据

使用的insert方法插入即可,无需关注autoid。 如果需要知道系统为记录生成的autoid值,可以使用insert方法的返回值。

从记录中获取autoid

首先,可以使用Cursor类的find方法将光标悬停在指定记录上,然后使用Cursor类的getAutoId ()方法检索。

用autoid获取记录

只需创建不指定索引名称的Cursor,然后直接将autoid传递给find方法

cursorCP=newcursor(con,Person.class;

PersonP3=CP.find(PRH2.Personid ); 完整的示例程序如下

import com.MC object.extreme db.connection;

import com.MC object.extreme db.cursor;

import com.MC object.extreme db.database;

import com.MC object.extreme db.indexable;

import com.MC object.extreme db.persistent;

@永久(autoid=true )/classwillbestoredinextremedbdatabase,declare autoid indexes

类人员{

人员(字符串名称) {

this.name=name;

}

@indexable(unique=true,type=database.indextype.hashtable ) ) ) ) )。

字符串名称;

}

@永久(autoid=true )/classwillbestoredinextremedbdatabase,declare autoid indexes

类house {

house (字符串地址) {

this.address=address;

}

@indexable(unique=true,type=database.indextype.hashtable ) ) ) ) )。

字符串地址;

}

@持续(autoid=true ) )。

class Person_R_House {

Person_r_house(longpersonid,long houseID ) {

this.personID=personID;

this.houseID=houseID;

}

@indexable(unique=false,type=database.indextype.hashtable ) )。

长个人身份;

@indexable(unique=false,type=database.indextype.hashtable ) )。

龙虎身份证;

}

公共类测试自动识别{

静态final int page _ size=128;

saticfinalintdisk _ page _ size=4096;

staticfinalintdisk _ cache _ size=4* 1024 * 1024;

saticfinalintdatabase _ size=16 * 1024 * 1024;

静态final int n _ person=5;

静态final int n _ house=5;

publicstaticvoidmain (字符串[ ] args ) {

数据库db=new database (;

database.parameters params=new database.parameters (;

params.memPageSize=PAGE_SIZE;

params.classes=new class [ ] { person.class,House.class,Person_R_House.class};

db.open(testautoiddb )、params、DATABASE_SIZE );

连接con=new connection (db;

//

//Insert data in the database

//

con.start transaction (database.transaction type.read write );

for(intI=1; i lt=N_PERSON; I ) {

con.insert (新个人(个人- ' I );

con.insert(newhouse('house-'I ) );

}

con.commitTransaction (;

//

//associateexistingpersonandexistinghouse

//

con.start transaction (database.transaction type.read write );

cursorcursorp=newcursor(con,Person.class,' name );

cursorcursorh=newcursor(con,House.class,' address ' );

人员P1=cursorp.find (人员-1);

houseH1=cursorh.find(house-2 );

if(p1!=null h1!=空) {

person _ r _ house pr h=new person _ r _ house (cursorp.get autoid (,cursorH.getAutoId ) );

con.insert(prh;

}

cursorP.close (;

cursorH.close (;

con.commitTransaction (;

//

//associatenewpersonandnewhouse

//

con.start transaction (database.transaction type.read write );

人员2=新人员(人员-新);

houseH2=newhouse(house-new );

longPID=con.insert(P2; //becausetheclasswasannotatedwith (自动=真)、

//theinsertmethodreturnsthegeneratedautoidofthenewlycreateobject

longhid=con.insert(H2;

person _ r _ house pr h=new person _ r _ house (PID,hID );

con.insert(prh;

con.commitTransaction (;

//

//showtherelationshipbetweenpersonandhouse

//

con.start transaction (database.transaction type.readonly );

cursorcursorprh=newcursor(con,Person_R_House.class );

for (person _ r _ house pr h 2: cursorprh ) ) ) ) )

cursorCP=newcursor(con,Person.class;

cursorch=newcursor(con,House.class;

PersonP3=CP.find(PRH2.Personid );

houseH3=ch.find(PRH2.houseid );

system.out.format('%shasahouse,地址is : % s (n ),p3.name,h3.address );

cp.close (;

ch.close (;

}

cursorPRH.close (;

con.commitTransaction (;

con.disconnect (;

db.close (;

}

}

linux,autojs生成的apk逆向js源码 apache calcite,linux