อะปาเช่ ไอบาติส
| อะปาเช่ ไอบาติส | |
|---|---|
| นักพัฒนา | มูลนิธิซอฟต์แวร์ Apache |
| เขียนเป็น | Java , .NET , Ruby |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| พิมพ์ | กรอบงานความคงทน |
| ใบอนุญาต | ใบอนุญาต Apache 2.0 |
| เว็บไซต์ | ibatis.apache.org |
iBATISเป็นเฟรมเวิร์กสำหรับการจัดการข้อมูลถาวรซึ่งช่วยให้การแมปข้อมูลระหว่าง ฐานข้อมูล SQLและอ็อบเจ็กต์ใน Java, .NET และ Ruby on Rails เป็นไปโดยอัตโนมัติ ใน Java อ็อบเจ็กต์เหล่านั้นคือ POJO ( Plain Old Java Objects ) การแมปข้อมูลจะแยกออกจากตรรกะของแอปพลิเคชันโดยการบรรจุคำสั่ง SQL ไว้ใน ไฟล์การกำหนดค่า XML ผลลัพธ์ที่ได้คือการลดปริมาณโค้ดที่นักพัฒนาต้องเขียนเพื่อเข้าถึงฐานข้อมูลเชิงสัมพันธ์โดยใช้ API ระดับต่ำ เช่น JDBCและODBCอย่างมีนัยสำคัญ
เฟรมเวิร์กการจัดเก็บข้อมูลถาวรอื่นๆ เช่นHibernateอนุญาตให้ผู้ใช้สร้างโมเดลอ็อบเจ็กต์ (เช่น ในภาษา Java) และสร้างและบำรุงรักษาฐานข้อมูลเชิงสัมพันธ์โดยอัตโนมัติ iBATIS ใช้แนวทางตรงกันข้าม: นักพัฒนาเริ่มต้นด้วยฐานข้อมูล SQL และ iBATIS จะสร้างอ็อบเจ็กต์ Java โดยอัตโนมัติ ทั้งสองแนวทางมีข้อดี และ iBATIS เป็นตัวเลือกที่ดีเมื่อนักพัฒนาไม่สามารถควบคุมโครงสร้างฐานข้อมูล SQL ได้อย่างเต็มที่ ตัวอย่างเช่น แอปพลิเคชันอาจจำเป็นต้องเข้าถึงฐานข้อมูล SQL ที่มีอยู่ซึ่งใช้งานโดยซอฟต์แวร์อื่น หรือเข้าถึงฐานข้อมูลใหม่ที่โครงสร้างไม่ได้อยู่ภายใต้การควบคุมของนักพัฒนาแอปพลิเคชันอย่างเต็มที่ เช่น ในกรณีที่ทีมออกแบบฐานข้อมูลเฉพาะทางได้สร้างโครงสร้างและปรับแต่งอย่างระมัดระวังเพื่อประสิทธิภาพสูง
เมื่อวันที่ 21 พฤษภาคม 2553 ทีมพัฒนาได้แยกโค้ดออกมาสร้างโปรเจกต์ใหม่ชื่อMyBatisและออกเวอร์ชันใหม่ในโปรเจกต์นั้น ส่งผลให้โปรเจกต์ Apache iBATIS หยุดการพัฒนาและถูกย้ายไปยัง Apache Attic ในเดือนมิถุนายน 2553
การใช้งาน
ตัวอย่างเช่น สมมติว่ามีตารางฐานข้อมูลPRODUCT (PROD_ID INTEGER , PROD_DESC VARCHAR(64) )และคลาส Java com.example.Product (id: int , description: String )ในการอ่านเรคอร์ดผลิตภัณฑ์ที่มีคีย์PROD_ID ลงใน POJO ผลิตภัณฑ์ใหม่จะต้องเพิ่มการแมปต่อไปนี้ลงในไฟล์แมปปิ้ง XML ของ iBATIS:
<select id= "getProduct" parameterClass= "java.lang.Long" resultClass= "com.example.Product" > select PROD_ID as id, PROD_DESC as description from PRODUCT where PROD_ID = # value # </select>จากนั้นสามารถดึงอ็อบเจ็กต์Java Product ใหม่จากฐานข้อมูลสำหรับหมายเลขผลิตภัณฑ์ 123 ได้ดังนี้:
ผลลัพธ์ของผลิตภัณฑ์= ( Product ) sqlMapClient.queryForObject ( " getProduct " , 123 );ในตัวอย่างไฟล์แมปปิ้ง#value#หมายถึงค่าจำนวนเต็มยาวที่ส่งผ่านเข้าไปในคำสั่งค้นหา หากพารามิเตอร์เป็นอ็อบเจ็กต์ Java ค่าจากคุณสมบัติของอ็อบเจ็กต์นั้นสามารถแทรกเข้าไปในคำสั่งค้นหาได้โดยใช้#สัญลักษณ์ที่คล้ายกัน ตัวอย่างเช่น หากคลาสของพารามิเตอร์คือcom.example.Productซึ่งมีคุณสมบัติชื่อidก็#value#สามารถแทนที่ด้วย ได้#id#อ็อบเจ็กต์sqlMapClientเป็นอินสแตนซ์ของcom.ibatis.sqlmap.client.SqlMapClientคลาส
ความพร้อมใช้งาน
ผู้ก่อตั้ง iBATIS ได้แสดงความไม่พอใจต่อ Java 5 อย่างเปิดเผยแต่ก็ยังคงปล่อย iBATIS เวอร์ชันใหม่สำหรับ Java ออกมาอย่างต่อเนื่อง เวอร์ชัน 2.3.1 และ 2.3.2 ออกมาในเดือนเมษายน 2551 และเวอร์ชัน 2.3.3 ในเดือนกรกฎาคม
ปัจจุบันเฟรมเวิร์กนี้มีให้ใช้งานในเวอร์ชันJava , .NETและRuby (RBatis) โครงการ jBatiเป็นORM สำหรับ JavaScript ที่ได้รับแรงบันดาลใจจาก iBATIS
เครื่องมือ Apache iBatorมีความเกี่ยวข้องอย่างใกล้ชิด โดยจะเชื่อมต่อกับฐานข้อมูลของคุณและใช้เมตาเดต้าของฐานข้อมูลเพื่อสร้างไฟล์แมปปิ้ง iBATIS และคลาส Java
ประวัติศาสตร์
ในปี พ.ศ. 2544 โครงการชื่อ iBATIS ได้เริ่มต้นขึ้นโดย Clinton Begin เดิมทีเน้นที่การพัฒนาโซลูชันซอฟต์แวร์การเข้ารหัสลับ ผลิตภัณฑ์แรกที่ iBATIS ปล่อยออกมาคือ Secrets [ 1 ]ซึ่งเป็นเครื่องมือเข้ารหัสและลงนามข้อมูลส่วนบุคคลคล้ายกับ PGP Secrets เขียนขึ้นทั้งหมดด้วยภาษา Java และเผยแพร่ภายใต้ใบอนุญาตโอเพนซอร์ส
ในปีนั้นMicrosoftได้เผยแพร่เอกสาร[ 2 ] เพื่อแสดงให้เห็นว่าเฟรมเวิร์ก .NET 1.0 รุ่นล่าสุดมีประสิทธิภาพมากกว่าJavaเพื่อจุดประสงค์นั้น Microsoft ได้สร้างเวอร์ชันของเว็บ "Pet Store" ของ Sun ซึ่งเป็นโครงการเว็บที่ Sun เคยใช้เพื่อแสดงแนวทางปฏิบัติที่ดีที่สุดของ Java ( Java BluePrints ) Microsoftอ้างว่า . NET เร็วกว่า Javaถึง 10 เท่าและมีประสิทธิภาพมากกว่าถึง 4 เท่า
ในปี พ.ศ. 2545 Clinton ได้พัฒนาแอปพลิเคชันชื่อ JPetStore [ 3 ]เพื่อแสดงให้เห็นว่าJavaสามารถทำงานได้มีประสิทธิภาพมากกว่า.NETและยังสามารถทำได้ในขณะที่บรรลุสถาปัตยกรรมที่ดีกว่าที่ใช้ในการใช้งานของ Microsoft
JPetStore 1.0 มีผลกระทบอย่างมาก[ 4 ]และเลเยอร์ฐานข้อมูลที่ Clinton ใช้ดึงดูดความสนใจของชุมชน ในไม่ช้า โครงการ iBATIS Database Layer 1.0 ก็เริ่มต้นขึ้น โดยประกอบด้วยสองส่วน ได้แก่ iBATIS DAO และ iBATIS SQL Maps
iBATIS 2.0 เปิดตัวในเดือนมิถุนายน พ.ศ. 2547 [ 5 ]ได้รับการออกแบบใหม่ทั้งหมดในขณะที่ยังคงคุณสมบัติเดิมไว้ Clinton บริจาคชื่อและรหัส iBATIS ให้กับApache Software Foundationและโครงการนี้ยังคงอยู่ใน ASF เป็นเวลาหกปี
ในที่สุด iBATIS DAO ก็ถูกยกเลิกการใช้งาน เนื่องจากมีเฟรมเวิร์ก DAO ที่ดีกว่าให้เลือกใช้ เช่นSpring Framework
เมื่อวันที่ 19 พฤษภาคม 2553 iBATIS 3.0 ได้รับการเผยแพร่ และในเวลาเดียวกัน ทีมพัฒนา ได้ตัดสินใจที่จะพัฒนาเฟรมเวิร์กต่อไปที่Google Code [ 6 ] ภายใต้โครงการใหม่ชื่อMyBatis
เมื่อวันที่ 16 มิถุนายน 2553 Apache ประกาศว่า iBATIS ได้ถูกยกเลิกการใช้งานและย้ายไปอยู่ใน Apache Attic แล้ว