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

}

}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA的网络编程基础概念建议收藏

    网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协

    2021年12月20日
    40
  • shell if语句和test命令

    shell if语句和test命令在shell中if条件判断语句和我们的C、C++、Java等语言是不同的,shell的if语句条件必须用[]括起来,另外[]里外都需要用空格与周围隔开(例如[a==b]),否则报错;另外与if配对的有elseif和else,如果我们要写这两个必须后面跟有东西,否则也会报错,在编程中不跟是可以的:if(a==b)printf("a=b");else{//什么都没有}但是s…

    2022年7月27日
    4
  • java中Scanner类用法的详解[通俗易懂]

    java中Scanner类用法的详解[通俗易懂] 一  java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。首先要导入包  import java.util.Scanner;Scanner类的创建对象:   Scanner S=newScanner(System.in);   方法基本格式  hasNextXxx()  判断是否还有下一个输入项,其中Xxx可以是Int,…

    2022年7月7日
    20
  • 数据挖掘的方法有哪些?

    数据挖掘的方法有哪些?数据挖掘的方法有哪些?01数据挖掘方法分类介绍1.预测性——有监督学习2.描述性——无监督学习02数据挖掘方法论1.CRISP-DM方法论2.SEMMA方法论03数据挖掘建模框架的3个原则1.以成本-收益分析为单一分析框架2.以分析主体和客体为视角3.构建全模型生命周期工作模板数据挖掘是一个多学科交叉的产物,涉及统计学、数据库、机器学习、人工智能及模式识别等多种学科,如图1-4所示。01数据挖掘方法分类介绍数据挖掘方法按照来源进行分类显得过于庞杂,而且不便于理解和记忆。按照其目

    2022年6月28日
    18
  • swoole异步io操作

    swoole异步io操作

    2022年2月15日
    36
  • 微商该如何通过分销系统达成正规化、数字化转型「建议收藏」

    微商该如何通过分销系统达成正规化、数字化转型「建议收藏」  微商,顾名思义,代表的是一种简洁方便的销售手段,现在借由微信、微博或QQ等都可以更快的传播在用户之间,引流速度极快。但因为微商的产品鱼龙混杂,产品质量难以辨别和商家存在欺骗销售的现象,所以有些人对微商的印象并不客观。那么微商如何把自己的大众形象重新树立起来,通过分销系统达成更加规范化和数字化的转型呢?  ​对于很多微商来说,分销系统是十分重要的。分销意味着可以凭借不断的扩张旗下的分销商,增加总部的销售额。  那么什么是分销系统呢?  分销系统就是商家或企业在线上搭建的一个销售体系,主要功能就

    2022年5月13日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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