รู้เบื้องต้นเกี่ยวกับ mybatis
รุ่นก่อนของ MyBatis คือ Ibatis ซึ่งเดิมเป็นโครงการโอเพนซอร์สของ Apache ในปี 2010 โครงการนี้ถูกย้ายจาก Apache Software Foundation เป็น Google Code และถูกเปลี่ยนชื่อ MyBatis
MyBatis เป็นเฟรมเวิร์กเลเยอร์การคงอยู่ที่ยอดเยี่ยมที่รองรับการสืบค้น SQL แบบธรรมดาขั้นตอนที่เก็บไว้และการทำแผนที่ขั้นสูง MyBatis กำจัดการตั้งค่าด้วยตนเองของรหัส JDBC เกือบทั้งหมดและพารามิเตอร์และการดึงชุดผลลัพธ์ MyBatis ใช้ XML อย่างง่ายหรือคำอธิบายประกอบสำหรับการกำหนดค่าและการแมปดั้งเดิมการแมปอินเทอร์เฟซและ pojos ของ Java (วางแผนวัตถุ Java เก่าวัตถุ Java ธรรมดา) ลงในบันทึกในฐานข้อมูล
ขั้นตอนต่อไปนี้ได้รับการแนะนำให้รู้จักกับการก่อสร้างสภาพแวดล้อม mybatis
1) แนะนำแพ็คเกจ mybatis-3.4.1.jar ภายใต้โครงการแล้วแนะนำแพ็คเกจฐานข้อมูล (MySQL, MSSQL .. )
2) สร้างไฟล์กำหนดค่าใหม่ conf.xml ภายใต้ src
<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! การกำหนดค่า doctype สาธารณะ "-// myBatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd Resource = "JDBC.Properties" /> <!-กำหนดค่าสภาพแวดล้อมการทำงานของ myBatis-> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <!-type = "JDBC" หมายถึงการใช้การกระทำของ JDBC พูล, unpooled, jndi-> <!-pooled หมายถึงการสนับสนุนสำหรับพูลการเชื่อมต่อแหล่งข้อมูล JDBC-> <!-unpooled ระบุว่าไม่สนับสนุนการเชื่อมต่อแหล่งข้อมูลการเชื่อมต่อแหล่งข้อมูล-> <!-jndi ระบุการรองรับการเชื่อมต่อแหล่งข้อมูลภายนอก-> value = "$ {url}"/> <property name = "username" value = "$ {username}"/> <property name = "รหัสผ่าน" value = "$}"ที่นี่ข้อมูลการจัดเก็บฐานข้อมูลจะถูกเก็บไว้ผ่านไฟล์การกำหนดค่าภายนอกดังนั้นข้อมูลการจัดเก็บฐานข้อมูล JDBC.Properties จะถูกเพิ่ม
driver = com.microsoft.sqlserver.jdbc.sqlserverdriverurl = jdbc: sqlserver: //127.0.0.1; databasename = testusername = sapassword = 123456
3) สร้างไฟล์การแมป usermapper.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtddtddtd ผู้ใช้ทั้งหมด-> <select id = "queryusers" resultType = "hw.com.pojo.user"> เลือก * จาก ms_user </select> <selectId = "queryUserById" resultType = "hw.com.pojo.user" selected> "int"> select *
(ควรสังเกตที่นี่ว่าแอตทริบิวต์เนมสเปซคือเนื่องจากอินสแตนซ์นี้ถูกแมปผ่านอินเทอร์เฟซดังนั้นแอตทริบิวต์เนมสเปซควรเขียนเป็นเส้นทางของอินเตอร์เฟส) รูปที่แนบมา:
4) สร้างคลาสอินเตอร์เฟสการแมป
แพ็คเกจ hw.com.ser; นำเข้า java.util.list; นำเข้า hw.com.pojo.user; อินเตอร์เฟสสาธารณะ iuser {รายการสาธารณะ <ผู้ใช้> queryusers (); ผู้ใช้สาธารณะ queryuserById (int id);}5) สร้าง sqlsessionfactory
แพ็คเกจ hw.com.util; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า java.io.inputstreamreader; นำเข้า java.io.reader; นำเข้า java.util.properties; นำเข้า org.apache.ibatis.io. org.apache.ibatis.session.sqlsessionfactory; นำเข้า org.apache.ibatis.session.sqlsessionfactorybuilder; คลาสสาธารณะ sqlsessionfactoryutil {ส่วนตัว sqlsessionfactory sqlsessionfactory = null; คลาสคงที่คลาสสุดท้ายคลาส class_lock = sqlsessionfactoryutil.class; Private SQLSessionFactoryUtil () {} สาธารณะคงที่ SQLSessionFactory InitSqlSessionFactory () {String Resource = "conf.xml"; inputStream inputStream = null; ลอง {inputStream = resources.getResourceasstream (ทรัพยากร); } catch (ioexception e) {e.printstacktrace (); } ซิงโครไนซ์ (class_lock) {ถ้า (sqlsessionfactory == null) {sqlsessionfactory = ใหม่ sqlsessionfactorybuilder (). build (inputstream); }} ส่งคืน sqlsessionfactory; } สาธารณะ sqlsession public opensqlSession () {ถ้า (sqlSessionFactory == null) {initSqlSessionFactory (); } ส่งคืน sqlsessionfactory.opensession (); -6) สร้าง pojo
แพ็คเกจ hw.com.pojo; นำเข้า java.util.date; ผู้ใช้ระดับสาธารณะ {รหัสสตริงส่วนตัว; ชื่อผู้ใช้สตริงส่วนตัว; สตริงส่วนตัว userpwd; Private int deptmentid; usertruename ส่วนตัวสตริง; อีเมลสตริงส่วนตัว private Int LearnCenterid; วันที่ส่วนตัวสร้างขึ้น วันที่ส่วนตัว LastModifyDate; private int userstatus; ผู้ใช้สาธารณะ () {super (); // todo toDo ที่สร้างขึ้นอัตโนมัติ stub} สตริงสาธารณะ getId () {return id; } โมฆะสาธารณะ setId (string id) {id = id; } สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {ชื่อผู้ใช้ = ชื่อผู้ใช้; } สตริงสาธารณะ getUserPwd () {return userpwd; } โมฆะสาธารณะ setUserPwd (สตริง userpwd) {userpwd = userpwd; } public int getDeptmentId () {return deptmentId; } โมฆะสาธารณะ setDeptmentId (int adpendmentId) {deptmentId = adpendmentId; } สตริงสาธารณะ getUserTruename () {return userTruename; } โมฆะสาธารณะ setUserTruename (สตริง userTruename) {userTruename = userTruename; } สตริงสาธารณะ getEmail () {ส่งคืนอีเมล; } โมฆะสาธารณะ setEmail (อีเมลสตริง) {อีเมล = อีเมล; } public int getlearncenterid () {return learncenterid; } โมฆะสาธารณะ setlearncenterid (int learncenterid) {learncenterid = learncenterid; } วันที่สาธารณะ getCreatedate () {return complementate; } โมฆะสาธารณะ setCreatedate (วันที่ที่สร้างขึ้น) {creatidate = creatidate; } วันที่สาธารณะ getLaStModifyDate () {return lastModifyDate; } โมฆะสาธารณะ setLastModifyDate (วันที่ lastModifyDate) {lastModifyDate = lastModifyDate; } public int getuserstatus () {return userstatus; } โมฆะสาธารณะ setuserstatus (int userstatus) {userstatus = userstatus; } @Override สตริงสาธารณะ toString () {return "user [id =" + id + ", username =" + ชื่อผู้ใช้ + ", userpwd =" + userpwd + ", deptmentId =" + deptmentId + ", userTruename =" lastModifyDate = " + lastModifydate +", userstatus = " + userstatus +"] "; -7) ทำการทดสอบภายใต้วิธีการหลัก
แพ็คเกจ hw.com.day1.main; นำเข้า java.util.list; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า hw.com.pojo.user; นำเข้า hw.com.ser.iuser; นำเข้า hw.com.util.sqlsessionfactoryutil; sqlsession = null; ลอง {sqlsession = sqlsessionfactoryutil.opensqlsession (); iuser iuser = sqlsession.getMapper (iuser.class); รายการ <user> ผู้ใช้ = iUser.QueryUsers (); if (users.size ()> 0) {สำหรับ (ผู้ใช้ผู้ใช้: ผู้ใช้) {system.out.println (user.toString ()); }}} catch (exception e) {e.printstacktrace (); -