comparable java_java rectangle

comparable java_java rectangle在JAVA中使用eXtremeDBautoid,主要有以下几个问题:定义插入数据已经获取记录,如何获得autoid知道autoid,如何获取记录定义autoid在类的定义前加入注释:@Persistent(autoid=true)注意,eXtremeDB中的autoid并不需要单独的定义出一列表示,只需要在类级别定义即可。插入数据正常的使用insert方法插入即可,无需关注autoid。如果需要…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在JAVA中使用eXtremeDB autoid,主要有以下几个问题:

定义

插入数据

已经获取记录,如何获得autoid

知道autoid,如何获取记录

定义autoid

在类的定义前加入注释:@Persistent(autoid=true)注意,eXtremeDB中的autoid并不需要单独的定义出一列表示,只需要在类级别定义即可。

插入数据

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

通过记录获得autoid

可以先通过Cursor类的find方法,先把游标定位到指定记录,然后通过Cursor类的getAutoId()方法获取。

通过autoid获取记录

创建一个不指定索引名的Cursor,直接把autoid传递到find方法即可

Cursor cp = new Cursor(con, Person.class);

Person p3 = cp.find(prh2.personID);完整的样例程序如下

import com.mcobject.extremedb.Connection;

import com.mcobject.extremedb.Cursor;

import com.mcobject.extremedb.Database;

import com.mcobject.extremedb.Indexable;

import com.mcobject.extremedb.Persistent;

@Persistent(autoid=true) // class will be stored in eXtremeDB database, declare autoid indexes

class Person {

Person(String name) {

this.name = name;

}

@Indexable(unique=true, type=Database.IndexType.Hashtable)

String name;

}

@Persistent(autoid=true) // class will be stored in eXtremeDB database, declare autoid indexes

class House {

House(String address) {

this.address = address;

}

@Indexable(unique=true, type=Database.IndexType.Hashtable)

String address;

}

@Persistent(autoid=true)

class Person_R_House {

Person_R_House(long personID, long houseID) {

this.personID = personID;

this.houseID = houseID;

}

@Indexable(unique=false, type=Database.IndexType.Hashtable)

long personID;

@Indexable(unique=false, type=Database.IndexType.Hashtable)

long houseID;

}

public class TestAutoId {

static final int PAGE_SIZE = 128;

static final int DISK_PAGE_SIZE = 4096;

static final int DISK_CACHE_SIZE = 4*1024*1024;

static final int DATABASE_SIZE = 16*1024*1024;

static final int N_PERSON = 5;

static final int N_HOUSE = 5;

public static void main(String[] args) {

Database 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);

Connection con = new Connection(db);

//

// Insert data in the database

//

con.startTransaction(Database.TransactionType.ReadWrite);

for (int i = 1; i &lt= N_PERSON; i++) {

con.insert( new Person(“Person-” + i));

con.insert( new House(“House-” + i));

}

con.commitTransaction();

//

// associate existing Person and existing House

//

con.startTransaction(Database.TransactionType.ReadWrite);

Cursor cursorP = new Cursor(con, Person.class, “name”);

Cursor cursorH = new Cursor(con, House.class, “address”);

Person p1 = cursorP.find(“Person-1”);

House h1 = cursorH.find(“House-2”);

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

Person_R_House prh = new Person_R_House(cursorP.getAutoId(),cursorH.getAutoId());

con.insert(prh);

}

cursorP.close();

cursorH.close();

con.commitTransaction();

//

// associate new Person and new House

//

con.startTransaction(Database.TransactionType.ReadWrite);

Person p2 = new Person(“Person-new”);

House h2 = new House(“House-new”);

long pID = con.insert(p2);//because the class was annotated with (autoid=true),

//the insert method returns the generated AUTOID of the newly create object

long hID = con.insert(h2);

Person_R_House prh = new Person_R_House(pID,hID);

con.insert(prh);

con.commitTransaction();

//

// show the relationship between Person and House

//

con.startTransaction(Database.TransactionType.ReadOnly);

Cursor cursorPRH = new Cursor(con, Person_R_House.class);

for(Person_R_House prh2 : cursorPRH) {

Cursor cp = new Cursor(con, Person.class);

Cursor ch = new Cursor(con, House.class);

Person p3 = cp.find(prh2.personID);

House h3 = ch.find(prh2.houseID);

System.out.format(“%s has a house, address is:%s \n”, p3.name, h3.address);

cp.close();

ch.close();

}

cursorPRH.close();

con.commitTransaction();

con.disconnect();

db.close();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182219.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 安装好Ubuntu18.04之后要做的事!!大全、详细教程!

    安装好Ubuntu18.04之后要做的事!!大全、详细教程!安装Ubuntu18.04之后的要做的事:1、更新源,使用软件更新器选择中国的服务器aliyun即可自动更新缓存,已经各种软件之后每天更新,shell更新:sudoaptupdatesudoaptupgrade2、安装vim、wget、curlsudoaptinstallvim配置十字光标:用户目录下vim.vimrc…

  • python文件按回车闪退_为什么我的python文件夹闪退

    python文件按回车闪退_为什么我的python文件夹闪退有时候,我们在运行python程序的时候会闪退,到底是什么原因呢?python文件是以.py结尾的,可以自己在python环境下运行的。对于这种闪退的情况,大概可以从以下几个方面分析。第一步首先找到我们平时编辑python后,将文件储存的所在文件夹的位置,尝试下双击,看是否能打开。第二步如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件。我先尝试了…

    2022年10月21日
  • UPX脱壳逐一跟踪分析

    UPX脱壳逐一跟踪分析UPX脱壳逐一跟踪分析写在前面OD跟踪命令先结合PE知识分析分析“新年快乐.exe”写在前面之前看到的UPX脱壳文章都只是教了方法,对UPX的原理少有提及。看了《逆核》的UPX脱壳一章后,俺尝试把UPX脱壳与PE文件结构的知识结合起来整理了一些(也可联系压缩器Paker的知识)。分析样本来自BUUCTF:Reverse题目“新年快乐”(本文将寻找样本的OEP)OD跟踪命令可能会用到的几个跟踪命令:命令快捷键作用AnimateIntoCtrl+F7反复执行StepIn

  • Linux安装软件命令&&快捷键

    安装软件命令(1)、rpm和yum命令介绍rpm:rpm是由RedHat公司开发的一种软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载等工作,但是使用rpm命令安装rpm软件包,不能自己解决软件包之间的依赖性问题,需要自己一个一个去安装依赖的软件包。yum:Yum(全称为YellowdogUpdater,Modified):是一…

  • 网络爬虫之动态内容爬取

    根据联合国网站可访问性审计报告,73%的主流网站都在其重要功能中依赖JavaScript。和单页面应用的简单表单事件不通,使用JavaScript时,不再是加载后立即下载所有页面内容。这样会造成许多网

    2021年12月29日
  • PyCharm激活码永久有效PyCharm2017.1.8激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2017.1.8激活码教程-持续更新,一步到位PyCharm激活码永久有效2017.1.8激活码教程-Windows版永久激活-持续更新,Idea激活码2017.1.8成功激活

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号