Mybatis映射文件根標(biāo)簽與子標(biāo)簽示例講解
一、Mybatis映射文件
1、映射文件根標(biāo)簽
mapping標(biāo)簽:
該標(biāo)簽中的namespace要求與接口的全類名一致
2、映射文件子標(biāo)簽
(1)cache(該命名空間的緩沖配置)
(2)cache-ref(引用其他命名空間的緩存配置)
(3)resultMap(描述如何從數(shù)據(jù)庫結(jié)果集中加載對(duì)象,是最復(fù)雜也是最強(qiáng)大的元素)
注意:resultType解決不了的問題,交給resultMap(一般是多表查詢)。
(4)sql(可被其他語句引用的可重用語句塊)
(5)insert(映射插入語句)
(6)update(映射更新語句)
(7)delete(映射刪除語句)
(8)select(映射查詢語句)
3、示例代碼
(1)“day02_mybatis.src.main.java.com.hh.mybatis.mapper.EmployeeMapper”中的代碼
package com.hh.mybatis.mapper; import com.hh.mybatis.pojo.Employee; import java.util.List; public interface EmployeeMapper { /** * 通過id獲取員工信息 * @param empId * @return */ public Employee selectEmployee(int empId); /** * 添加員工信息 * @param employee */ public void insertEmployee(Employee employee); /** * 刪除員工信息 * @param empId */ public void deleteEmployeeById(int empId); /** * 修改員工信息 * @param employee */ public void updateEmployee(Employee employee); /** * 查詢所有員工信息 * @return */ public List<Employee> selectAllEmps(); }
(2)映射文件中的代碼(day02_mybatis.src.main.resources.mapper下的EmployeeMapper.xml)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.hh.mybatis.mapper.EmployeeMapper"> <select id="selectEmployee" resultType="employee"> SELECT id, last_name, email, salary FROM tbl_employee WHERE id=#{empId} </select> <insert id="insertEmployee"> INSERT INTO tbl_employee(last_name,email,salary) VALUES (#{lastName},#{email},#{salary}) </insert> <delete id="deleteEmployeeById"> delete from tbl_employee where id=#{empId} </delete> <update id="updateEmployee"> update tbl_employee set last_name = #{lastName}, email = #{email}, salary = #{salary} where id = #{id} </update> <select id="selectAllEmps" resultType="employee"> SELECT id, last_name, email, salary FROM tbl_employee </select> </mapper>
(3)測(cè)試類代碼(day02_mybatis.src.test.java.TestMybatis)
import com.hh.mybatis.mapper.EmployeeMapper; import com.hh.mybatis.pojo.Employee; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; public class TestMybatis { @Test public void TestMybatis(){ try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //通過sqlSessionFactory獲取sqlSession對(duì)象 SqlSession sqlSession = sqlSessionFactory.openSession(); //獲取EmployeeMapper的代理對(duì)象 EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); System.out.println("employeeMapper.getClass().getName() = " + employeeMapper.getClass().getName()); Employee employee = employeeMapper.selectEmployee(1); System.out.println("employee = " + employee); } catch (IOException e) { e.printStackTrace(); } } /** * 測(cè)試添加員工 */ @Test public void TestMybatisInsert(){ try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //通過sqlSessionFactory獲取sqlSession對(duì)象 SqlSession sqlSession = sqlSessionFactory.openSession(); //獲取EmployeeMapper的代理對(duì)象 EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); // Employee wangwu = new Employee(null,"wangwu","zs@163.com",50.0); //測(cè)試添加員工信息 // employeeMapper.insertEmployee(wangwu); //測(cè)試刪除員工信息 // employeeMapper.deleteEmployeeById(2); // Employee wangwu = new Employee(1,"zhangsan1","zs1@163.com",102.0); // // employeeMapper.updateEmployee(wangwu); //查詢所有員工信息 List<Employee> employees = employeeMapper.selectAllEmps(); for (Employee employee : employees) { System.out.println("employee = " + employee); } //提交事務(wù) sqlSession.commit(); } catch (IOException e) { e.printStackTrace(); } } }
到此這篇關(guān)于Mybatis映射文件根標(biāo)簽與子標(biāo)簽的文章就介紹到這了,更多相關(guān)Mybatis映射文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Java list.remove( )方法需要注意的兩個(gè)坑
這篇文章主要介紹了淺談Java list.remove( )方法需要注意的兩個(gè)坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12Spring boot從安裝到交互功能實(shí)現(xiàn)零基礎(chǔ)全程詳解
這篇文章主要介紹了Spring boot從安裝到交互功能得實(shí)現(xiàn)全程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07SpringCloud?Nacos?+?Ribbon?調(diào)用服務(wù)的實(shí)現(xiàn)方式(兩種)
這篇文章主要介紹了SpringCloud?Nacos?+?Ribbon?調(diào)用服務(wù)的兩種方法,分別是通過代碼的方式調(diào)用服務(wù)和通過注解方式調(diào)用服務(wù),每種方式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03spring cloud Hystrix斷路器的使用(熔斷器)
這篇文章主要介紹了spring cloud Hystrix斷路器的使用(熔斷器),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08淺談Spring事務(wù)傳播行為實(shí)戰(zhàn)
這篇文章主要介紹了淺談Spring事務(wù)傳播行為實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09SpringMVC @RequestBody屬性名大寫字母注入失敗的解決
這篇文章主要介紹了SpringMVC @RequestBody屬性名大寫字母注入失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Spring Boot 項(xiàng)目發(fā)布到 Tomcat 服務(wù)器的操作步驟
這篇文章主要介紹了Spring Boot 項(xiàng)目發(fā)布到 Tomcat 服務(wù)器的操作步驟,需要的朋友可以參考下2017-04-04SpringBoot啟動(dòng)報(bào)錯(cuò)Whitelabel Error Page: This&nbs
當(dāng)我們使用Spring Boot框架開發(fā)Web應(yīng)用時(shí),有時(shí)會(huì)遇到啟動(dòng)報(bào)錯(cuò)信息為"Whitelabel Error Page: This application has no explicit mapping for",種報(bào)錯(cuò)信息意味著我們的應(yīng)用缺少某個(gè)URL映射的配置,導(dǎo)致請(qǐng)求無法處理,在本篇文章中,我們將詳細(xì)討論如何解決這個(gè)問題2024-03-03java讀取圖片并轉(zhuǎn)化為二進(jìn)制字符串的實(shí)現(xiàn)方法
這篇文章主要介紹了java讀取圖片并轉(zhuǎn)化為二進(jìn)制字符串的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09java input 調(diào)用手機(jī)相機(jī)和本地照片上傳圖片到服務(wù)器然后壓縮的方法
今天小編就為大家分享一篇java input 實(shí)現(xiàn)調(diào)用手機(jī)相機(jī)和本地照片上傳圖片到服務(wù)器然后壓縮的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08