กรุณาเยี่ยมชมเว็บไซต์ JSqlParser เป็นตัวแยกวิเคราะห์คำสั่ง SQL ที่ไม่เชื่อเรื่องพระเจ้า RDBMS มันแปลคำสั่ง SQL เป็นลำดับชั้นที่สามารถข้ามผ่านของคลาส Java (ดูตัวอย่าง):
SELECT 1 FROM dual WHERE a = b
SQL Text
└─Statements: statement.select.PlainSelect
├─selectItems: statement.select.SelectItem
│ └─LongValue: 1
├─Table: dual
└─where: expression.operators.relational.EqualsTo
├─Column: a
└─Column: b
String sqlStr = "select 1 from dual where a=b" ;
PlainSelect select = ( PlainSelect ) CCJSqlParserUtil . parse ( sqlStr );
SelectItem selectItem =
select . getSelectItems (). get ( 0 );
Assertions . assertEquals (
new LongValue ( 1 )
, selectItem . getExpression ());
Table table = ( Table ) select . getFromItem ();
Assertions . assertEquals ( "dual" , table . getName ());
EqualsTo equalsTo = ( EqualsTo ) select . getWhere ();
Column a = ( Column ) equalsTo . getLeftExpression ();
Column b = ( Column ) equalsTo . getRightExpression ();
Assertions . assertEquals ( "a" , a . getColumnName ());
Assertions . assertEquals ( "b" , b . getColumnName ());
}
JSQLParser-4.9 เป็นเวอร์ชันล่าสุดที่เข้ากันได้กับ JDK8 JSQLParser-5.0 ล่าสุดขึ้นอยู่กับ JDK11 และแนะนำการเปลี่ยนแปลงที่ทำลาย API สำหรับผู้เยี่ยมชม AST โปรดดูคู่มือการย้ายข้อมูลสำหรับรายละเอียด
JSqlParser มุ่งหวังที่จะสนับสนุนมาตรฐาน SQL เช่นเดียวกับ RDBMS หลักทั้งหมด ไวยากรณ์หรือคุณลักษณะที่ขาดหายไปสามารถเพิ่มได้ตามความต้องการ
อาร์ดีบีเอ็มเอส | งบ |
---|---|
ออราเคิล เซิร์ฟเวอร์ MS SQL และ Sybase โพสต์เกรส MySQL และ MariaDB ดีบี2 H2 และ HSQLDB และดาร์บี้ SQLite | SELECT INSERT UPDATE UPSERT MERGE DELETE TRUNCATE TABLE CREATE ... , ALTER .... , DROP ... WITH ... |
Salesforce SOQL | INCLUDES , EXCLUDES |
JSqlParser ยังสามารถใช้เพื่อสร้างคำสั่ง SQL จากโค้ด Java ด้วย API ได้อย่างคล่องแคล่ว (ดูตัวอย่าง)
หากคุณชอบ JSqlParser โปรดตรวจสอบโครงการที่เกี่ยวข้อง:
JSQLFormatter สำหรับการพิมพ์และการจัดรูปแบบข้อความ SQL ที่สวยงาม
JSQLTranspiler สำหรับการเขียนใหม่เฉพาะภาษาถิ่น ความละเอียดคอลัมน์ SQL และ Lineage
SQL Parser ทั่วไป ดูดีทีเดียว โดยมีไวยากรณ์ SQL แบบขยาย (เช่น PL/SQL และ T-SQL) และ java + .NET API เครื่องมือนี้เป็นเชิงพาณิชย์ (มีใบอนุญาตออนไลน์) พร้อมตัวเลือกดาวน์โหลดฟรี
อีกทางหนึ่ง JOOQ ที่ได้รับอนุญาตแบบคู่มี Parser ที่เขียนด้วยมือซึ่งสนับสนุน RDBMS จำนวนมาก การแปลระหว่างภาษาถิ่น การแปลง SQL สามารถใช้เป็นพร็อกซี JDBC สำหรับวัตถุประสงค์ในการแปลและการแปลง
JSqlParser ได้รับอนุญาตแบบคู่ภายใต้ LGPL V2.1 หรือ Apache Software License เวอร์ชัน 2.0