/* scrip for google analytic */

Ads 468x60px

วันพุธที่ 27 เมษายน พ.ศ. 2559

[Neo4j] สวัสดีชาวโลก! Hello World! ด้วย JAVA Implements กับ Neo4j

ในบทความนี้จะมาเล่าถึงวิธีการนำ Neo4j มา Implements ให้อ่านกัน
จากบทความที่ผ่านๆมา เป็นการปูพื้นก่อนที่จะนำ Graph Database มาใช้

ก่อนที่มาเริ่ม Coding ก็ให้มาติดตั้ง Environment ให้เสร็จเรียบร้อยก่อน ได้แก่

1. Java JDK
2. ติดตั้ง Path เป็น JAVA_HOME ให้เรียบร้อย
3. ติดตั้ง JAVA EE
4. ติดตั้ง Neo4j ให้เรียบร้อย

จากนั้นก็เริ่ม สร้าง Project ขึ้นมา select File -> new -> Java Project 



จากนั้นก็เริ่ม Build Path ของ Neo4j เข้ามาใน Library



กด Properties




Add Library


User Library





New


ใส่ชื่อ


เลือก Library .jar





กด finish

เริ่มสร้าง New -> Java Class



จากนั้นก็เริ่ม Import เข้ามาได้เลย



ในบทความนี้จะอธิบายตัวอย่างนี้เพียงคร่าวให้คุ้นชินกับคำสั่งก่อน

จากนี้ผมจะอธิบายความหมายของ คำสั่ง Code แต่ละบรรทัดให้อ่านกัน

หมายเหตุให้เติม /bin หลัง Neo4j_version ไปด้วย

ในส่วนนี้เป็นการสร้าง Path ของ Library โดยใส่ Path ที่ได้ Build Path เอาไว้

กำหนด Object ของ Graph database ได้แก่
Node Relation ดังที่ได้อธิบายไปบทความก่อนๆหน้านี้
และ GraphdatabaseService จะอธิบายในภายหลัง



Code ส่วนนี้เป็นการสร้าง Label ว่า RelTypes โดยใช้ Interface
ของNeo4j ชื่อ ReletionshipType ผ่านการใช้ enum โดยตั้งชื่อว่า KNOWS


Code ถัดไป คือการสร้างฐานข้อมูล โดยที่ใช้คำสั่ง  graphDatabaseService = new GraphDatabaseFactory().newEmbeddedDatabase(Neo4j_DBPath);

ซึ่งจะต้องรวม Object - new GraphDatabaseFacetory().newEmbeddedDatabase("C:/Path Folder ที่เก็บฐานข้อมูล Graph");

ส่วน

first = graphDatabaseService.createNode();
first.setProperty("name", "SKLSongkiat");

second = graphDatabaseService.createNode();
second.setProperty("name", "Blog");

เป็นการสร้าง Node

และ

relation = first.createRelationshipTo(second, RelTypes.KNOWS);
relation.setProperty("relationship-type", "KNOWS");

เป็นการสร้าง Reletionship และใน Properties สร้างให้กับมันว่า KNOWS

จากนั้นก็ให้มันแสดงผล


Code ถัดไป เป็นการลบข้อมูล เช่น Node ต่างๆ

Method beginTX เป็น Method การเชื่อมต่อกับฐานข้อมูล


ปิด Database


และในส่วน Main ก็ นำMethod มาใช้


 ผลลัพท์เมื่อรัน ก็จะได้แบบ Console ด้านล่าง



ในบทความถัดไปจะมาเล่าวิธีการเชื่อมต่อกับ Neo4j เพื่อดูรูปแบบของ Node เชื่อมต่อกันแบบ GUI
จริงๆแล้ว Code บางคำสั่งจะ deprecate ไปแล้ว ในบทหน้าจะเขียนอีกรูปหนึ่งให้ได้อ่านกัน

ลองนำ Source Code ด้านล่างไปลองทำตามดูก่อนครับ


Source CODE:

import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.shell.impl.SystemOutput;

public class Helloworld {

//Path of Neo4j_Path
private static final String Neo4j_DBPath = "Users/Songkiat/Desktop";

// Create Parameter
Node first;
Node second;
Relationship relation;
GraphDatabaseService graphDatabaseService;


//list of relationship first KNOWS second
private static enum RelTypes implements RelationshipType{
KNOWS
}

void createDelete(){

//GraphDatabaseService
graphDatabaseService = new GraphDatabaseFactory().newEmbeddedDatabase(Neo4j_DBPath);

//Begin Transaction
Transaction transaction = graphDatabaseService.beginTx();

try{
//create Node & set Properties
first = graphDatabaseService.createNode();
first.setProperty("name", "SKLSongkiat");

second = graphDatabaseService.createNode();
second.setProperty("name", "Blog");

//Relationship
relation = first.createRelationshipTo(second, RelTypes.KNOWS);
relation.setProperty("relationship-type", "KNOWS");

//display
System.out.print(first.getProperty("name").toString() + " ");
System.out.print(relation.getProperty("relationship-type").toString());
System.out.println(" " + second.getProperty("name").toString());

//success transaction
transaction.success();
}

finally{
//finish the transaction

}
}

void removeData(){

Transaction transaction = graphDatabaseService.beginTx();

try{
//delete
first.getSingleRelationship(RelTypes.KNOWS,Direction.OUTGOING).delete();
System.out.println("nodes are remove");

//delete Node
first.delete();
second.delete();
transaction.success();

}finally{
//finish the transaction
transaction.finish();
}

}
void shutdown(){

//shutdown GraphDatabase
graphDatabaseService.shutdown();
System.out.println("Neo4j database is shutdown");

}

public static void main(String[] args) {

Helloworld hello = new Helloworld();
hello.createDelete();
hello.removeData();
hello.shutdown();

}

}


///////////////////////////////////////The End /////////////////////////////////////
REF:

http://technoracle.blogspot.com/2012/05/third-neo4j-tutorial-getting-started.html
http://neo4j.com/docs/stable/tutorials-java-embedded.html
http://neo4j.com/docs/stable/tutorials-java-embedded-hello-world.html
https://www.youtube.com/watch?v=Q8QCNcHnVS8
https://www.youtube.com/watch?v=1pKSWTzn0T4
https://www.youtube.com/watch?v=mq4Evw0EsQE
http://neo4j.com/api_docs//1.8.M01/
 
 
Blogger Templates