MyBatis เป็น ORM แบบกึ่งอัตโนมัติ ในการใช้เฟรมเวิร์กนี้เวิร์กโหลดมากที่สุดคือการเขียนไฟล์การแมปการแมป เนื่องจากการเขียนด้วยตนเองเป็นเรื่องง่ายที่จะทำผิดพลาดเราจึงสามารถใช้ MyBatis-Generator เพื่อช่วยเราสร้างไฟล์โดยอัตโนมัติ
วิศวกรรมย้อนกลับ
1. วิศวกรรมย้อนกลับคืออะไร
MyBaits ต้องการโปรแกรมเมอร์เพื่อเขียนคำสั่ง SQL ด้วยตนเอง MyBatis Official จัดเตรียมวิศวกรรมย้อนกลับเพื่อสร้างรหัสที่ต้องการโดยอัตโนมัติสำหรับการดำเนินการ mybatis (mapper.java, mapper.xml, po .. )
วิธีการทางวิศวกรรมย้อนกลับทั่วไปที่ใช้ในการพัฒนาองค์กรจริง:
รหัส Java ถูกสร้างขึ้นเนื่องจากตารางของฐานข้อมูล
2. ดาวน์โหลดวิศวกรรมย้อนกลับ
mybatis-generator-core -1.3.2-bundle.zip
3. วิธีใช้ (สามารถใช้งานได้)
3.1 รันวิศวกรรมย้อนกลับ
มีหลายวิธีในการเรียกใช้วิศวกรรมย้อนกลับที่มีให้ในเอกสารอย่างเป็นทางการ
ใช้เครื่องกำเนิด mybatis
MyBatis Generator (MBG) สามารถทำงานได้ในวิธีต่อไปนี้:
(1) จากพรอมต์คำสั่งด้วยการกำหนดค่า XML
(2) เป็นงานมดที่มีการกำหนดค่า XML
(3) เป็นปลั๊กอิน maven
(4) จากโปรแกรม Java อื่นที่มีการกำหนดค่า XML
(5) จากโปรแกรม Java อื่นที่มีการกำหนดค่าตาม Java
(6) คุณยังสามารถสร้างรหัสผ่านปลั๊กอิน Eclipse
ขอแนะนำให้ใช้วิธีโปรแกรม Java (จากโปรแกรม Java อื่นที่มีการกำหนดค่า XML) และไม่ต้องพึ่งพาเครื่องมือการพัฒนา
ด้านล่างเป็นโครงการที่สร้างไฟล์ย้อนกลับจากนั้นคัดลอกไฟล์ที่สร้างขึ้นโดยอัตโนมัติไปยังโครงการต้นฉบับ (ทำเพื่อหยุดการสร้างโดยตรงในไฟล์ต้นฉบับและเขียนทับไฟล์ด้วยชื่อเดียวกัน) ภาพหน้าจอของแพ็คเกจ JAR ที่นำเข้าและโครงสร้างโครงการมีดังนี้:
ดังที่แสดง
3.2 สร้างไฟล์การกำหนดค่ารหัส
GeneratorConfig.xml:
<? xml version = "1.0" encoding = "utf-8" 1.0 // en "" http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd "> <seneratoronconfiguration> <context id =" testTables "targetRuntime =" MyBatis3 "> <ความคิดเห็น name = "suppressallComments" value = "true"/> </commentGenerator> <!-ข้อมูลการเชื่อมต่อฐานข้อมูล: คลาสไดรเวอร์, ที่อยู่การเชื่อมต่อ, ชื่อผู้ใช้, รหัสผ่าน-> <jdbcconnection driverclass = "com.mysql.jdbc.driver" การเชื่อมต่อ " userId = "root" password = "1234"> </jdbcconnection> <!-<jdbcconnection driverclass = "oracle.jdbc.oracledriver" connectionurl = "jdbc: oracle:@127.0.0.1: 1521: yycg" เท็จแยกวิเคราะห์ประเภท decimal และตัวเลขของตัวเลขเป็นจำนวนเต็มและเมื่อจริงให้แยกวิเคราะห์ decimal jdbc และตัวเลขเป็น java.math.bigdecimal-> <javatyperesolver> <property name = "forceBigDecimals" value = "false" /> -> <javamodelGenerator targetPackage = "cn.edu.hpu.ssm.po" targetProject = "./ src"> <!-enablesubpackages: ไม่ว่าจะให้สคีมาเป็นคำต่อท้ายของแพ็คเกจ-> value = "true"/> </javamodelgenerator> <!-เป้าหมายเป้าหมาย: ตำแหน่งที่ไฟล์แผนที่แม็ปเปอร์ถูกสร้างขึ้น-> <sqlmapgenerator targetPackage = "cn.edu.hpu.sm.mapper" targetProject = " NAME = "ENABLESUBPACKAGES" value = "FALSE"/> </SQLMAPGENERATOR> <!-TargetPackage: ตำแหน่งของการสร้างอินเทอร์เฟซแม็ป คำต่อท้ายของแพ็คเกจ-> <property name = "ENABLESUBPACKAGES" value = "FALSE"/> </JavaclientGenerator> <!-ระบุตารางฐานข้อมูล-> <table tablename = "items"> </table> <table tablename = "คำสั่งซื้อ"> </table> tablename = "sys_user"> </bable> <table schema = "" tablename = "sys_role"> </table> <table schema = "" tablename = "sys_permission"> </table> <table schema = "" tablename = "sys_user_role" -> <!-บางฟิลด์ตารางต้องใช้ประเภท Java <table schema = "" tablename = ""> <columnoverride column = "" javatype = "/> </table>
3.3 ดำเนินการโปรแกรมเครื่องกำเนิดไฟฟ้า
generatorsqlmap.java:
นำเข้า java.io.file; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า org.mybatis.generator.api.mybatisgenerator; นำเข้า org.mybatis.generator.config.configuration; org.mybatis.generator.internal.defaultshellcallback; คลาสสาธารณะ GeneratorsQlMap {public void generator () โยนข้อยกเว้น {รายการ <string> คำเตือน = arrayList ใหม่ <String> (); boolean overwrite = true; // ไฟล์การกำหนดค่าไฟล์ configurationParser cp = new configurationParser (คำเตือน); configuration config = cp.parseconfiguration (configfile); defaultShellCallback callback = new DefaultShellCallback (overWrite); Main (String [] args) โยนข้อยกเว้น {ลอง {generatorsQlMap generatorsQlMap = new GeneratorsQlMap (); GeneratorsQlMap.generator ();} catch (Exception E) {E.printstackTrace ();}}}}}}รหัสที่สร้างขึ้น:
3.4 การใช้รหัสที่สร้างขึ้น
คุณต้องคัดลอกรหัสที่สร้างขึ้นในโครงการที่สร้างขึ้นในโครงการของคุณเอง ลองคัดลอก itemsMapper.java และ itemsmapper.xml รายการและคลาส itemsexample ลงในโครงการดั้งเดิมของเรา
วิธีการทดสอบใน itemsmapper
แพ็คเกจ cn.edu.hpu.ssm.test; นำเข้า org.junit.assert.fail; นำเข้า java.util.date; นำเข้า java.util.list; นำเข้า org.junit.before; นำเข้า org.junit.test; org.springframework.context.support.classpathxmlapplicationContext; นำเข้า cn.edu.hpu.ssm.mapper.itemsmapper; นำเข้า cn.edu.hpu.sm.po.items; itemsMapper itemsMapper; // คำอธิบายประกอบก่อนที่จะเรียกวิธีนี้ก่อนที่จะดำเนินการวิธีการทดสอบทั้งหมดของคลาสนี้ @BeforePublic การตั้งค่า () โยนข้อยกเว้น {ApplicationContext = ใหม่ classPathxMlApplicationContext ("classpath: Spring/ApplicationContext.xml"); itemsMapper = (รายการ testDeleteByPrimaryKey () {fail ("ยังไม่ได้ใช้งาน");} // แทรก @TestPublic เป็นโมฆะ testInsert () {รายการรายการ = ใหม่ รายการ (); items.setName ("iPhone-5s"); items.setPrice (3999f); items.setDetail ("Authentic"); items.setpic ("sdasd.jpg"); items.setCreateTime {itemsexample itemsexample = ใหม่ itemsexample (); // สร้างเงื่อนไขการสืบค้นผ่านเกณฑ์ itemsexample.criteria criteria = itemsexample.createcriteria (); เกณฑ์และรายการ itemper. สำหรับ (int i = 0; i <list.size (); i ++) {items it = list.get (i); System.out.println (it.getId ()+":"+it.getName ());}} // การสืบค้นตามคีย์หลัก @TestPublic Void testSelectByPrimaryKey () {items = itemper.selectByPrimaryKey (1); system.out.out.println (รายการ TestUpDateByPrimaryKey () {// อัปเดตฟิลด์ทั้งหมดคุณต้องสอบถามก่อนจากนั้นอัปเดตรายการรายการ = itemsMapper.SelectByPrimaryKey (1); items.setName ("iPhone"); itemsMapper.updateByPrimaryKey (รายการ); // หากฟิลด์ขาเข้าไม่ว่างเปล่าให้ใช้วิธีนี้ในการอัปเดตแบตช์ ไม่จำเป็นต้องสืบค้นก่อนจากนั้นอัปเดต //itemsmapper.updateByBremaryKeySelective(record);}}ด้านบนเป็นรหัสอัตโนมัติ MyBatis Reverse Engineering ที่สร้างขึ้นโดย MyBatis Framework ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน!
การอ่านที่แนะนำจาก wulin.com:
mybatis บทนำการเรียนรู้การเรียนรู้ (i) - mybatis เริ่มต้นอย่างรวดเร็ว
การวิเคราะห์เชิงลึกของ MyBatis Oracle Blob ประเภทฟิลด์การประหยัดและการอ่าน
Mybatis ฝึก Dao และ Mapper
SQL แบบไดนามิกและการสืบค้นที่เกี่ยวข้องในการฝึก mybatis