Rumah > Java > javaTutorial > teks badan

Ciri-ciri penulisan MyBatis yang berbeza

PHPz
Lepaskan: 2024-02-18 18:31:17
asal
942 orang telah melayarinya

Ciri-ciri penulisan MyBatis yang berbeza

Perbezaan dalam kaedah penulisan MyBatis memerlukan contoh kod khusus

Ikhtisar:
MyBatis ialah rangka kerja lapisan kegigihan yang ringan Berbanding dengan rangka kerja ORM yang lain, MyBatis mempunyai beberapa perbezaan dalam kaedah penulisan. Artikel ini akan memperkenalkan secara terperinci kaedah penulisan MyBatis yang berbeza dan menyediakan beberapa contoh kod khusus.

1. Penggunaan fail pemetaan XML:
Inti MyBatis adalah untuk melaksanakan pernyataan SQL melalui fail pemetaan XML. Berbanding dengan rangka kerja ORM lain, penggunaan fail pemetaan XML memisahkan pernyataan SQL daripada kod Java, meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Contoh: Katakan ada kelas Pengguna.

1.1 Konfigurasikan fail pemetaan XML:

<!-- User.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getUserById" resultType="com.example.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>
Salin selepas log masuk

1.2 Panggilan dalam kod Java:

@Autowired
private SqlSession sqlSession;

public User getUserById(int id){
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    return userMapper.getUserById(id);
}
Salin selepas log masuk
Salin selepas log masuk

2. Penggunaan SQL dinamik:
MyBatis menyediakan cara yang mudah untuk membina pernyataan SQL dinamik, iaitu, berdasarkan keadaan yang berbeza Splice pernyataan SQL dan menjana pernyataan SQL akhir secara dinamik semasa pelaksanaan. Kaedah penulisan ini sangat fleksibel dan mudah dalam aplikasi praktikal.

Contoh: Katakan ada kelas Pengguna.

2.1 Gunakan teg if:

<!-- User.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getUserByCondition" resultType="com.example.User">
        SELECT * FROM users WHERE 1 = 1
        <if test="id != null">
            AND id = #{id}
        </if>
        <if test="name != null">
            AND name = #{name}
        </if>
    </select>
</mapper>
Salin selepas log masuk

2.2 Panggil dalam kod Java:

@Autowired
private SqlSession sqlSession;

public List<User> getUserByCondition(Integer id, String name){
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    return userMapper.getUserByCondition(id, name);
}
Salin selepas log masuk

3. Penggunaan pemetaan hasil:
MyBatis menyokong pemetaan hasil pertanyaan ke objek Java atau set hasil tersuai, yang boleh dikonfigurasikan dengan mengkonfigurasi fail pemetaan XML nyatakan hubungan pemetaan.

Contoh: Katakan ada kelas Pengguna.

3.1 Pemetaan automatik:

<!-- User.xml -->
<mapper namespace="com.example.UserMapper">
    <resultMap id="userResultMap" type="com.example.User">
        <id property="id" column="id" />
        <result property="name" column="name" />
    </resultMap>
    <select id="getUserById" resultMap="userResultMap">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>
Salin selepas log masuk

3.2 Memanggil dalam kod Java:

@Autowired
private SqlSession sqlSession;

public User getUserById(int id){
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    return userMapper.getUserById(id);
}
Salin selepas log masuk
Salin selepas log masuk

Ringkasan:
MyBatis ialah rangka kerja lapisan kegigihan yang fleksibel dan berkuasa yang boleh mengurus pernyataan SQL dan pernyataan SQL dinamik secara mudah melalui fail pemetaan XML XML Pembinaan boleh menstabilkan pernyataan mengikut syarat yang berbeza, dan penggunaan pemetaan hasil boleh memetakan hasil pertanyaan kepada objek Java atau set hasil tersuai. Perbezaan ini menjadikan MyBatis sebagai rangka kerja lapisan kegigihan yang disukai oleh pembangun.

Atas ialah kandungan terperinci Ciri-ciri penulisan MyBatis yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!