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é)果集中加載對象,是最復(fù)雜也是最強大的元素)
注意: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)測試類代碼(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對象
SqlSession sqlSession = sqlSessionFactory.openSession();
//獲取EmployeeMapper的代理對象
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();
}
}
/**
* 測試添加員工
*/
@Test
public void TestMybatisInsert(){
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通過sqlSessionFactory獲取sqlSession對象
SqlSession sqlSession = sqlSessionFactory.openSession();
//獲取EmployeeMapper的代理對象
EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
// Employee wangwu = new Employee(null,"wangwu","zs@163.com",50.0);
//測試添加員工信息
// employeeMapper.insertEmployee(wangwu);
//測試刪除員工信息
// 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java17和springboot3.0使用shiro報ClassNotFoundException的解決
本文主要介紹了Java17和springboot3.0使用shiro報ClassNotFoundException的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04
springboot整合redis實現(xiàn)發(fā)送郵箱并驗證
大家好,本篇文章主要講的是springboot整合redis實現(xiàn)發(fā)送郵箱并驗證,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01
親手教你IDEA2020.3創(chuàng)建Javaweb項目的步驟詳解
這篇文章主要介紹了IDEA2020.3創(chuàng)建Javaweb項目的步驟詳解,本文是小編手把手教你,通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-03-03
由淺到深帶你詳談Java實現(xiàn)數(shù)組擴容的三種方式
這篇文章主要詳細介紹了Java實現(xiàn)數(shù)組擴容的三種方式,新建一個數(shù)組,把原來數(shù)組的內(nèi)容搬到新數(shù)組中,使用system.arraycopy(),使用java.util.Arrays.copyOf()這三種方式,具有一定的參考價值,需要的朋友可以借鑒一下2023-06-06
Java Spring開發(fā)環(huán)境搭建及簡單入門示例教程
這篇文章主要介紹了Java Spring開發(fā)環(huán)境搭建及簡單入門示例,結(jié)合實例形式分析了spring環(huán)境搭建、配置、使用方法及相關(guān)注意事項,需要的朋友可以參考下2017-11-11
Spring Security OAuth 自定義授權(quán)方式實現(xiàn)手機驗證碼
這篇文章主要介紹了Spring Security OAuth 自定義授權(quán)方式實現(xiàn)手機驗證碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

