คุณสมบัติเหล่านี้สามารถกำหนดค่าได้จากภายนอกและสามารถเปลี่ยนได้แบบไดนามิกและสามารถกำหนดค่าได้ในไฟล์คุณสมบัติ Java ทั่วไปหรือผ่านองค์ประกอบลูกขององค์ประกอบคุณสมบัติ ตัวอย่างเช่น:
<properties resource = "org/mybatis/example/config.properties"> <property name = "ชื่อผู้ใช้" value = "dev_user"/> <property name = "รหัสผ่าน" value = "f2fa3! 33Tyyg"/> </properties >>
คุณสมบัติในนั้นสามารถใช้ได้ตลอดทั้งไฟล์การกำหนดค่าเพื่อแทนที่ค่าคุณสมบัติที่ต้องกำหนดค่าแบบไดนามิก ตัวอย่างเช่น:
<dataSource type = "pooled"> <property name = "driver" value = "$ {driver}"/> <property name = "url" value = "$ {url}"/> <property name = "username" value = "$ {username}"ในตัวอย่างนี้ชื่อผู้ใช้และรหัสผ่านจะถูกแทนที่ด้วยค่าที่สอดคล้องกันที่ตั้งไว้ในองค์ประกอบคุณสมบัติ คุณสมบัติของไดรเวอร์และ URL จะถูกแทนที่ด้วยค่าที่เกี่ยวข้องในไฟล์ config.properties สิ่งนี้มีตัวเลือกที่ยืดหยุ่นมากมายสำหรับการกำหนดค่า
คุณสมบัติสามารถส่งผ่านไปยังวิธีการ sqlsessionfactorybuilder.build () ตัวอย่างเช่น:
SQLSessionFactory Factory = ใหม่ SQLSessionFactoryBuilder (). สร้าง (ผู้อ่าน, อุปกรณ์ประกอบฉาก); // ... หรือ ... SQLSessionFactory โรงงาน = ใหม่ SQLSessionFactoryBuilder () สร้าง (ผู้อ่าน, สิ่งแวดล้อม, อุปกรณ์ประกอบฉาก);
หากมีการกำหนดค่าคุณสมบัติในมากกว่าหนึ่งสถานที่ mybatis จะถูกโหลดตามลำดับต่อไปนี้:
แอตทริบิวต์ที่ระบุไว้ในองค์ประกอบขององค์ประกอบคุณสมบัติจะถูกอ่านครั้งแรก
จากนั้นอ่านไฟล์คุณสมบัติภายใต้ classPath ตามแอตทริบิวต์ทรัพยากรในองค์ประกอบคุณสมบัติหรืออ่านไฟล์คุณสมบัติตามเส้นทางที่ระบุโดยแอตทริบิวต์ URL และเขียนทับคุณสมบัติการอ่านของชื่อเดียวกัน
ในที่สุดแอตทริบิวต์ที่ส่งผ่านเป็นพารามิเตอร์วิธีการอ่านและเขียนทับแอตทริบิวต์การอ่านของชื่อเดียวกัน
ดังนั้นคุณสมบัติที่ผ่านพารามิเตอร์เมธอดมีลำดับความสำคัญสูงสุดตามด้วยไฟล์การกำหนดค่าที่ระบุไว้ในคุณสมบัติทรัพยากร/URL และลำดับความสำคัญต่ำสุดคือคุณสมบัติที่ระบุไว้ในคุณสมบัติคุณสมบัติ
เริ่มต้นด้วย MyBatis 3.4.2 คุณสามารถระบุค่าเริ่มต้นสำหรับตัวยึดตำแหน่ง ตัวอย่างเช่น:
<dataSource type = "pooled"> <!-...-> <property name = "username" value = "$ {ชื่อผู้ใช้: UT_USER}"/> <!-ถ้าคุณสมบัติ 'ผู้ใช้' ไม่ปรากฏชื่อผู้ใช้จะกลายเป็น 'UT_USER'-> </dataSource>ฟีเจอร์นี้ถูกปิดโดยค่าเริ่มต้น หากคุณต้องการระบุค่าเริ่มต้นสำหรับตัวยึดตำแหน่งคุณควรเพิ่มคุณสมบัติที่ระบุเพื่อเปิดใช้งานคุณสมบัตินี้ ตัวอย่างเช่น:
<properties resource = "org/mybatis/example/config.properties"> <!-...-> <property name = "org.apache.ibatis.parsing.propertyparser.enable-default-value" true "/> <!
คุณสามารถใช้ ":" เป็นคีย์แอตทริบิวต์ (เช่น DB: ชื่อผู้ใช้) หรือคุณสามารถใช้ตัวดำเนินการ ternary ของการแสดงออกของ OGNL ในนิยาม SQL (เช่น $ {tablename! = null? tablename: 'global_constants'}) คุณควรเปลี่ยนอักขระที่แยกคีย์และค่าเริ่มต้นโดยการเพิ่มแอตทริบิวต์ที่ระบุ ตัวอย่างเช่น:
<properties resource = "org/mybatis/example/config.properties"> <!-...-> <property name = "org.apache.ibatis.parsing.propertyparser.default-value-separator" value = "?:"/> <! name = "username" value = "$ {db: ชื่อผู้ใช้?: UT_USER}"/> </TataSource>สรุป
ข้างต้นคือการกำหนดค่าคุณสมบัติใน MyBatis ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!