รู้เบื้องต้นเกี่ยวกับ mybatis
MyBatis เป็นเฟรมเวิร์กเลเยอร์การคงอยู่ที่ยอดเยี่ยมที่รองรับการสืบค้น SQL แบบธรรมดาขั้นตอนที่เก็บไว้และการทำแผนที่ขั้นสูง MyBatis กำจัดการตั้งค่าด้วยตนเองของรหัส JDBC และพารามิเตอร์เกือบทั้งหมดและค้นหาชุดผลลัพธ์ MyBatis สามารถใช้ XML หรือคำอธิบายประกอบแบบง่าย ๆ สำหรับการกำหนดค่าและการแมปดั้งเดิมไปยังอินเตอร์เฟสแมปและ Pojos ของ Java (วัตถุ Java Old Old Old) ลงในบันทึกในฐานข้อมูล
mybatis ดาวน์โหลด: https://github.com/mybatis/mybatis-3/releases
อินสแตนซ์ mybatis
การดำเนินการ CRUD บนตารางผู้ใช้:
ตารางผู้ใช้:
------------------------------- โครงสร้างตารางสำหรับ `ผู้ใช้ '----------------------------- ตารางดร็อปถ้ามีอยู่` ผู้ใช้' สร้างตาราง `ผู้ใช้ '(` id` int (11) ไม่ใช่ null auto_increment, `` varchar (50) null `` varchar (50) engine = innoDB auto_increment = 6 charset เริ่มต้น = utf8;------------------------------- บันทึกของผู้ใช้----------------------------- ใส่เข้าไปในค่า `ผู้ใช้ '(' 1 ',' ฤดูร้อน ',' 30 ',' shanghai '); 'test1', '29', 'บางสถานที่'); แทรกลงในค่า `ผู้ใช้ '(' 4 ',' lu ',' 28 ',' สถานที่บางแห่ง '); แทรกลงในค่า` ผู้ใช้' ('5', 'Xiaoxun', '27', 'หนานจิง'); สร้าง mybatis xml configuration configuration.xml <? xml version = "1.0" encoding = "utf-8"?> <! doctype การกำหนดค่าสาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/dtd คำจำกัดความนามแฝง MyBatis-> <typealiases> <typealias alias = "user" type = "com.mybatis.test.user"/> </typealiases> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "jdbc"/> value = "com.mysql.jdbc.driver"/> <property name = "url" value = "jdbc: mysql: //127.0.0.1: 3306/mybatis"/> <property name = "username" value = "root"/> ไฟล์ไฟล์การกำหนดค่า XML แต่ละไฟล์สอดคล้องกับอินเทอร์เฟซ -> <mappers> <mapper resource = "com/mybatis/test/user.xml"/> <mappers> กำหนดไฟล์การกำหนดค่าผู้ใช้ Mappers ของผู้ใช้
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd namespace = "com.mybatis.test.iuseroperation"> <!-เลือกคำสั่ง-> <select id = "selectUserById" พารามิเตอร์ = "int int" resultType = "ผู้ใช้"> เลือก * จาก `user` โดยที่ผู้ใช้ type = "user" id = "userresultmap"> <id property = "id" คอลัมน์ = "user_id" /> <result property = "username" คอลัมน์ = "user_username" /> <result property = "userage" คอลัมน์ = "user_userage" /> ผลลัพธ์ของ MAP ชี้ไปที่กำหนดไว้ก่อนหน้านี้-> <!-<select id = "SelectUsersByName" ParameterType = "String" resultMap = "userResultMap"> เลือก * จากผู้ใช้ที่ user.username = #{ชื่อผู้ใช้} </select>-> <select id = #{ชื่อผู้ใช้} </select> <!-คำสั่ง SELECTION SQL ที่ดำเนินการเพิ่มขึ้น ID และ PARAMETERTYPE นั้นเหมือนกับชื่อและประเภทพารามิเตอร์ของวิธี ADDUSER ในอินเตอร์เฟส IUSEROPERATION useGeneratedKeys ตั้งค่าเป็น "true" ระบุว่า mybatis ต้องการรับคีย์หลักที่สร้างขึ้นโดยอัตโนมัติโดยฐานข้อมูล; keyProperty = "id" ระบุการฉีดค่าคีย์หลักที่ได้รับลงในคุณสมบัติ ID ของผู้ใช้ -> <แทรก id = "adduser" พารามิเตอร์ = "ผู้ใช้" useGeneratedKeys = "true" keyProperty = "id"> userress} userress </insert> <update id = "updateUser" parameterType = "ผู้ใช้"> อัปเดตตั้งค่าผู้ใช้ชื่อผู้ใช้ =#{ชื่อผู้ใช้}, userage =#{userage}, useraddress =#{useraddress} โดยที่ id =#{id} id =#{id} </delete> </ mapper> ไฟล์การกำหนดค่าใช้ความสัมพันธ์การแมประหว่างอินเทอร์เฟซและคำสั่ง SQL SelectUsersByName ใช้สองวิธีในการใช้งาน ความคิดเห็นที่แสดงความคิดเห็นก็เป็นการนำไปปฏิบัติเช่นกัน การใช้ ResultMap สามารถกำหนดความสัมพันธ์การแมประหว่างแอตทริบิวต์และชื่อคอลัมน์ฐานข้อมูล คุณสมบัติคือคุณสมบัติของคลาสคอลัมน์คือชื่อคอลัมน์ของตารางหรืออาจเป็นนามแฝงสำหรับชื่อคอลัมน์ตาราง!
คำจำกัดความของคลาสผู้ใช้:
แพ็คเกจ com.mybatis.test; ผู้ใช้ระดับสาธารณะ {ส่วนตัว ID ID; ชื่อผู้ใช้สตริงส่วนตัว; userage private userage; สตริงส่วนตัว useraddress; public int getId () {return id;} โมฆะสาธารณะ setId (int id) {this.id = id; getUserage () {return userage;} โมฆะสาธารณะ setUserage (int userage) {this.userage = userage;} สตริงสาธารณะ getUserAddress () {return useraddress;} โมฆะสาธารณะ setUserAddress (สตริง useraddress) "+this.userage+" "+this.useraddress;}} คำจำกัดความของ iuseroperaton:
แพ็คเกจ com.mybatis.test; นำเข้า java.util.list; อินเทอร์เฟซสาธารณะ iUseroperation {ผู้ใช้สาธารณะ SelectUserById (ID int); รายการสาธารณะ <ผู้ใช้> SelectUsersByName (ชื่อผู้ใช้สตริง); Void AddUser (ผู้ใช้ผู้ใช้) IUSerOperation สอดคล้องกับอินเตอร์เฟสการทำงานชื่อฟังก์ชันและชื่อ ID การทำงานในไฟล์การกำหนดค่า XML ของ MyBatis '
ทดสอบชั้นเรียน:
แพ็คเกจ com.mybatis.test; นำเข้า java.io.reader; นำเข้า java.util.list; นำเข้า org.apache.ibatis.io.resources; นำเข้า org.apache.ibatis.session.sqlsession; org.apache.ibatis.session.sqlsessionfactorybuilder; การทดสอบระดับสาธารณะ {ส่วนตัว sqlsessionfactory sqlsessionfactory; reader reader แบบสแตติกส่วนตัว; คงที่ {ลอง {reader = resources.getResourceAsreaderer ("การกำหนดค่า Catch (Exception E) {E.printStackTrace ();}} สาธารณะ sqlsessionfactory getSession () {return sqlsessionfactory;} โมฆะสาธารณะ getUserById (int userId) {sqlsession session = sqlSessionFactory.Pensession useroperation.selectUserById (userId); ถ้า (ผู้ใช้! = null) {system.out.println (user.getId () + ":" + user.getUserName () + ":" + user.getUserAddress ());}} ในที่สุด SQLSessionFactory.opensession (); ลอง {iUseroperation useroperation = session.getMapper (iUseroperation.class); รายการ <ผู้ใช้> ผู้ใช้ = useroperation.selectusersbyName (ชื่อผู้ใช้); สำหรับ (ผู้ใช้: ผู้ใช้: ผู้ใช้) {system.out.println user.getUserAddress ());}} ในที่สุด {session.close ();}}/*** หลังจากเพิ่ม, commit*/public void adduser () {ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setUserAddress ("place"); user.setUserName ("test_add") {iUserOperation userOperation = session.getMapper (iUseroperation.class); useroperation.adduser (ผู้ใช้); session.commit (); system.out.println ("เพิ่ม ID ผู้ใช้:" + user.getId ()); เซสชัน = sqlsessionfactory.opensession (); ลอง {iuseroperation useroperation = session.getMapper (iUseroperation.class); ผู้ใช้ผู้ใช้ = useroperation.selectUserById (1); ถ้า (ผู้ใช้! = null) {session.close ();}}/*** หลังจากการลบ, commit.** @param id*/โมฆะสาธารณะ deleteuser (int id) {sqlsession session = sqlsessionfactory.opensession (); ลอง {iuseroperation useroperation = session.getMapper {session.close ();}} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ลอง {ทดสอบทดสอบ = การทดสอบใหม่ (); // test.getUserById (1); // test.getUserList ("test1"); // test.adduser (); {system.out.println (e.getMessage ());}}}ข้างต้นเป็นรหัสตัวอย่างของการใช้งาน MyBatis ของการเพิ่มการลบการดัดแปลงและการสืบค้น (CRUD) ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!