การตระเตรียม
ในการสร้างโครงการ Java ใหม่หรือโครงการ Java WWEB คุณต้องนำเข้าแพ็คเกจต่อไปนี้
งานพื้นฐานเสร็จสมบูรณ์แล้วเราจะเริ่มไปที่หัวข้อ
สร้างคลาสเอนทิตีใหม่
สร้างคลาสเอนทิตีใหม่ที่สอดคล้องกับตารางฐานข้อมูล
แพ็คเกจ com.edu.hpu.domain; /***@Author Administrator*คลาสเอนทิตีที่สอดคล้องกับตารางผู้ใช้*/ผู้ใช้คลาสสาธารณะ {// แอตทริบิวต์ของคลาสเอนทิตีและชื่อฟิลด์ของตารางสอดคล้องกับ ID int ส่วนตัว; ชื่อสตริงส่วนตัว; อายุ int ส่วนตัว; // ห่อหุ้มแอตทริบิวต์สาธารณะ int getId () {return id; } โมฆะสาธารณะ setId (int id) {this.id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } public int getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุ int) {this.age = อายุ; } // เพิ่มวิธีการ toString @Override สตริงสาธารณะ toString () {return "user [id =" + id + ", name =" + name + ", age =" + age + "]"; -เพิ่มคลาสเครื่องมือ mybatis
คลาสเครื่องมือที่เพิ่มดังแสดงด้านล่าง
แพ็คเกจ com.edu.hpu.util; นำเข้า Java.io.InputStream; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า org.apache.ibatis.session.sqlsessionfactory; นำเข้า org.apache.ibatis.session.sqlsessionfactory; นำเข้า org.apache.ibatis.session.sqlsessionfactorybuilder; คลาสสาธารณะ mybatisutil {/** * รับ sqlsessionfactory * @return sqlsessionfactory */สาธารณะ sqlsessionfactory getsqlsessionfactory () {string resource = "conf.xml"; // คลิกไฟล์การกำหนดค่าอินพุต SQLSessionFactory Factory = ใหม่ SQLSessionFactoryBuilder (). สร้าง (IS); โรงงานกลับมา; } / ** * รับ sqlsession * @return sqlsession * / สาธารณะ sqlsession getSqlsession () {return getsqlsessionfactory (). opensession (); } /** * รับ sqlsession * @param isautocommit * จริงหมายความว่าวัตถุ SQLSession ที่สร้างขึ้นจะส่งธุรกรรมโดยอัตโนมัติหลังจาก SQL ถูกดำเนินการ * เท็จหมายความว่าวัตถุ SQLSession ที่สร้างขึ้นจะไม่ส่งธุรกรรมโดยอัตโนมัติหลังจาก SQL ถูกเรียกใช้งาน ในเวลานี้เราต้องโทรหา sqlsession.commit () ด้วยตนเองเพื่อส่งธุรกรรม * @return sqlsession */ สาธารณะ sqlsession public sqlsession getSqlsession (บูลีน isautocommit) {return getsqlsessionfactory (). opensession (isautocommit); -มีสองวิธีในการเพิ่มการลบการค้นหาและแก้ไขข้อมูลโดยใช้ myBatis คือการดำเนินการกำหนดค่าไฟล์และการดำเนินการอธิบายประกอบ
การดำเนินการผ่านไฟล์การกำหนดค่า
ไฟล์กำหนดค่าฐานข้อมูลมีดังนี้กำหนดค่าข้อมูลฐานข้อมูล
<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! การกำหนดค่า Doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd <transactionManager type = "jdbc" /> <!-กำหนดค่าข้อมูลการเชื่อมต่อฐานข้อมูล-> <dataSource type = "pooled"> <property name = "driver" value = "com.mysql.jdbc.driver" /> <property name = "url" value = "jdbc: mysql: // localhost: 3306/test? useunicode = true & characterencoding = utf-8 & zerodatetimebebehavior = Converttonull"/> <property name = "username" value = "root"/> <property name = "รหัสผ่าน ไฟล์ usermapper.xml, usermapper.xml อยู่ในแพ็คเกจ com.edu.hpu.mapping ดังนั้นทรัพยากรจึงถูกเขียนเป็น com/edu/hpu/mapping/usermapper.xml-> <mapper resource = "com/edu/hpu/mapping
กำหนดค่าไฟล์คำสั่งการดำเนินการฐานข้อมูลดังที่แสดงด้านล่าง
<? 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.edu.hpu.mapping.usermapper"> <!- คำสั่งการค้นหา SQL ในแท็กเลือกตั้งแอตทริบิวต์ ID ของแท็กเลือกเป็น getUser ค่าแอตทริบิวต์ ID จะต้องไม่ซ้ำกัน แอตทริบิวต์พารามิเตอร์ไม่สามารถนำกลับมาใช้ใหม่เพื่อระบุประเภทพารามิเตอร์ที่ใช้ในแบบสอบถาม แอตทริบิวต์ ResultType ระบุประเภทชุดผลลัพธ์ที่ส่งคืนโดย Query ResultType = "com.edu.hpu.domain.user" หมายความว่าผลลัพธ์การสืบค้นถูกห่อหุ้มไว้ในวัตถุของคลาสผู้ใช้และส่งกลับไปยังคลาสผู้ใช้ resultType = "com.edu.hpu.domain.user"> เลือก * จากผู้ใช้ที่ id =#{id} </select> <!-สร้างผู้ใช้ (สร้าง)-> <แทรก id = "adduser" พารามิเตอร์ {com.edu.hpu.domain.user " (ลบ)-> <delete id = "deleteUser" parameterType = "int"> ลบจากผู้ใช้ที่ id =#{id} </delete> <!-แก้ไขผู้ใช้ (อัปเดต)-> <update id = "updateUser" parameterType = "com.edu.hpu.domain.domain.user" </update> <!-การสืบค้นผู้ใช้ทั้งหมด-> <select id = "getAllusers" resultType = "com.edu.hpu.domain.user"> เลือก * จากผู้ใช้ </select> </mapper> การเพิ่มฐานข้อมูลการลบและการแก้ไขผ่านไฟล์การกำหนดค่านั้นเสร็จสมบูรณ์โดยทั่วไป ถัดไปจะได้รับคลาสทดสอบ
การทดสอบสามารถทำได้ดังที่แสดงด้านล่าง
แพ็คเกจ com.edu.hpu.test; นำเข้า java.util.list; นำเข้า com.edu.hpu.domain.user; นำเข้า com.edu.hpu.util.mybatisutil; นำเข้า org.junit.test; นำเข้า org.apache.ibatis.session.sqlsession; คลาสสาธารณะ test2 {@test โมฆะสาธารณะ testadd () {// sqlsession sqlsession = mybatisutil.getsqlsession (เท็จ); sqlsession sqlsession = mybatisutil.getsqlsession (จริง); / ** * แผนที่สตริงการระบุ SQL, * com.edu.hpu.mapping.usermapper เป็นค่าของแอตทริบิวต์เนมสเปซของแท็ก mapper ในไฟล์ usermapper.xml, * adduser เป็นแอตทริบิวต์ ID ของแท็กแทรกและ SQL "com.edu.hpu.mapping.usermapper.adduser"; // แผนที่ SQL การระบุสตริงผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setName ("ผู้ใช้ใหม่ Xiaohuang"); user.setage (20); // ดำเนินการแทรกการดำเนินการ int retresult = sqlsession.insert (คำสั่ง, ผู้ใช้); // ส่งธุรกรรมด้วยตนเอง // sqlsession.commit (); // หลังจากดำเนินการ SQL โดยใช้ sqlsession sqlsession.close (); System.out.println (retresult); } @Test โมฆะสาธารณะ TestUpDate () {SQLSession SQLSession = MyBatisUtil.GetSqlSession (จริง); /** * แผนที่สตริงการระบุ SQL, * com.edu.hpu.mapping.usermapper เป็นค่าของแอตทริบิวต์เนมสเปซของแท็ก Mapper ในไฟล์ usermapper.xml, * UpdateUser เป็นค่าแอตทริบิวต์ ID ของแท็กการอัปเดต SQL ที่จะดำเนินการสามารถพบได้ผ่านค่าแอตทริบิวต์ ID ของแท็กอัปเดตแท็ก */string attement = "com.edu.hpu.mapping.usermapper.updateuser"; // การแม็พ SQL id string user ผู้ใช้ = ผู้ใช้ใหม่ (); user.setId (3); user.setName ("Hello World"); user.setage (25); // ดำเนินการปรับเปลี่ยนการดำเนินการ int retresult = sqlsession.update (คำสั่ง, ผู้ใช้); // หลังจากดำเนินการ SQL ด้วย SQLSession คุณต้องปิด sqlsession sqlsession.close (); System.out.println (retresult); } @Test Public Void TestDelete () {SQLSession SQLSession = MyBatisutil.getSqlSession (จริง); / ** * แผนที่สตริงการระบุ SQL, * com.edu.hpu.mapping.usermapper เป็นค่าของแอตทริบิวต์ namespace ของแท็ก mapper ในไฟล์ usermapper.xml, * deleteUser เป็นค่าแอตทริบิวต์ ID ของแท็กลบและ SQL "com.edu.hpu.mapping.usermapper.deleteuser"; // การแมปสตริงการระบุตัวตนของ SQL // ดำเนินการลบการดำเนินการ int retresult = sqlsession.delete (คำสั่ง 4); // หลังจากดำเนินการ SQL โดยใช้ sqlsession sqlsession.close (); System.out.println (retresult); } @Test Public Void TestGetAll () {SQLSession SQLSession = MyBatisutil.getSqlSession (); /** * การแมปสตริงการระบุตัวตนของ SQL, * com.edu.hpu.mapping.usermapper เป็นค่าของแอตทริบิวต์เนมสเปซของแท็ก mapper ในไฟล์ usermapper.xml * GetAllusers เป็นค่าแอตทริบิวต์ ID ของแท็กที่เลือก SQL ที่จะดำเนินการสามารถพบได้ผ่านค่าแอตทริบิวต์ ID ของคำสั่ง SELECT TAG */String = "com.edu.hpu.mapping.usermapper.getAllusers"; // การแมปสตริง SQL Identity // ดำเนินการสืบค้น // หลังจากดำเนินการ SQL ด้วย SQLSession คุณต้องปิด sqlsession sqlsession.close (); System.out.println (lstusers); -การดำเนินการผ่านคำอธิบายประกอบ
การดำเนินการผ่านคำอธิบายประกอบต้องเขียนอินเทอร์เฟซ แต่ไม่จำเป็นต้องใช้งานดังที่แสดงด้านล่าง
แพ็คเกจ com.edu.hpu.mapping; นำเข้า java.util.list; นำเข้า com.edu.hpu.domain.user; นำเข้า org.apache.ibatis.annotations.delete; นำเข้า org.apache.ibatis.annotations.insert; นำเข้า org.apache.ibatis.annotations.select; นำเข้า org.apache.ibatis.annotations.update; /** * @Author GACL * กำหนดอินเตอร์เฟสสำหรับการแมป SQL, ระบุ SQL ที่จะดำเนินการโดยใช้คำอธิบายประกอบ */อินเตอร์เฟสสาธารณะ usermapper_11 {// ใช้ @INSERT Annotation เพื่อระบุ SQL เพื่อดำเนินการโดยใช้วิธีการที่ { # // ใช้คำอธิบายประกอบ @Delete เพื่อระบุ SQL ที่จะดำเนินการโดยวิธีการ deleteById @delete ("ลบจากผู้ใช้ที่ id =#{id}") สาธารณะ int deleteById (ID int); // ใช้คำอธิบายประกอบ @update เพื่อระบุ SQL ที่จะดำเนินการโดยวิธีการอัปเดต @UpDate ("อัปเดตผู้ใช้ตั้งชื่อ =#{ชื่อ}, อายุ =#{อายุ} โดยที่ id =#{id}") การอัปเดตสาธารณะ (ผู้ใช้ผู้ใช้); // ใช้คำอธิบายประกอบ @Select เพื่อระบุ SQL เพื่อเรียกใช้วิธี getById @Select ("เลือก * จากผู้ใช้ที่ id =#{id}") ผู้ใช้สาธารณะ getById (ID int); // ใช้คำอธิบายประกอบ @Select เพื่อระบุ SQL เพื่อเรียกใช้วิธี getAll @Select ("เลือก * จากผู้ใช้") รายการสาธารณะ <user> getAll (); -ในเวลาเดียวกันคุณต้องเพิ่มอินเทอร์เฟซที่เขียนลงในไฟล์กำหนดค่าฐานข้อมูลและเพิ่มคำสั่งต่อไปนี้ใน conf.xml
<mapper/>
ตกลงมันเสร็จสมบูรณ์โดยทั่วไปนี่คือคลาสทดสอบที่สามารถทดสอบได้
แพ็คเกจ com.edu.hpu.test; นำเข้า java.util.list; นำเข้า com.edu.hpu.domain.user; นำเข้า com.edu.hpu.mapping.usermapper_11; นำเข้า com.edu.hpu.util.mybatisutil; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า org.junit.test; / ***@Author Administrator*ทดสอบคำอธิบายประกอบ*/ คลาสสาธารณะ test3 {@Test โมฆะสาธารณะ testAdd () {SQLSession SQLSession = myBatisUtil.getSqlSession (จริง); // รับวัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMAPPER วัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMAPPER ถูกสร้างขึ้นแบบไดนามิกโดย sqlsession.getMapper (usermapper.class) USERMAPPER_11 MAPPER = SQLSESSION.GETMAPPER (USERMAPPER_11.CLASS); ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setName ("Great Wisdom Is Foolish"); user.setage (20); int add = mapper.add (ผู้ใช้); // SQLSession จะต้องปิดหลังจากดำเนินการ SQL ด้วย sqlsession sqlsession.close (); System.out.println (เพิ่ม); } @Test โมฆะสาธารณะ TestUpDate () {SQLSession SQLSession = MyBatisUtil.GetSqlSession (จริง); // รับวัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMAPPER วัตถุคลาสการใช้งานของอินเทอร์เฟซ usermapper ถูกสร้างขึ้นแบบไดนามิกโดย sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setId (3); user.setName ("เสียงและเสียงใหญ่"); user.setage (26); // ดำเนินการแก้ไขการดำเนินการ int retresult = mapper.update (ผู้ใช้); // หลังจากดำเนินการ SQL โดยใช้ SQLSession คุณต้องปิด SQLSession SQLSession.close (); System.out.println (retresult); } @Test Public Void TestDelete () {SQLSession SQLSession = MyBatisutil.getSqlSession (จริง); // รับวัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMAPPER และวัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMAPPER ถูกสร้างขึ้นแบบไดนามิกโดย SQLSession.GetMapper (USERMAPPER.CLASS) USERMAPPER_11 MAPPER = SQLSESSION.GETMAPPER (USERMAPPER_11.CLASS); // ดำเนินการลบการดำเนินการ int retresult = mapper.deleteById (7); // หลังจากใช้ SQLSession เพื่อดำเนินการ SQL คุณต้องปิด sqlsession sqlsession.close (); System.out.println (retresult); } @Test Public Void TestGetUser () {SQLSession SQLSession = MyBatisutil.GetSqlSession (); // รับวัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMAPPER วัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMApperi ถูกสร้างขึ้นแบบไดนามิกโดย sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); // ดำเนินการแบบสอบถามและห่อหุ้มผลลัพธ์การสืบค้นโดยอัตโนมัติลงในผู้ใช้ที่ส่งคืนผู้ใช้ผู้ใช้ = mapper.getById (1); // หลังจากใช้ SQLSession เพื่อดำเนินการ SQL คุณต้องปิด sqlsession sqlsession.close (); System.out.println (ผู้ใช้); } @Test Public Void TestGetAll () {SQLSession SQLSession = MyBatisutil.getSqlSession (); // รับวัตถุคลาสการใช้งานของอินเทอร์เฟซ USERMAPPER วัตถุคลาสการใช้งานของอินเทอร์เฟซ usermapper ถูกสร้างขึ้นแบบไดนามิกโดย sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); // ดำเนินการค้นหาแบบสอบถามและสรุปผลลัพธ์การสืบค้นลงในรายการ <user> โดยอัตโนมัติรายการส่งคืน <user> lstusers = mapper.getall (); // หลังจากใช้การดำเนินการ SQLSession SQL คุณต้องปิด sqlsession sqlsession.close (); System.out.println (lstusers); -ข้างต้นเป็นคำอธิบายโดยละเอียดเกี่ยวกับการใช้ MyBatis ของการเพิ่มข้อมูลการลบและการแก้ไขที่บรรณาธิการแนะนำให้คุณ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!