学习笔记——Mybatis映射文件根标签与子标签
2023-03-31 10:39:51 时间
2023-01-09
一、Mybatis映射文件
1、映射文件根标签
mapping标签:
该标签中的namespace要求与接口的全类名一致
2、映射文件子标签
(1)cache(该命名空间的缓冲配置)
(2)cache-ref(引用其他命名空间的缓存配置)
(3)resultMap(描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素)
注意: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); } //提交事务 sqlSession.commit(); } catch (IOException e) { e.printStackTrace(); } } }
相关文章
- 一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解
- 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解
- 空中换引擎 博时基金数字化转型经验谈
- 如何高效地学习编程语言
- 作为一名阿里巴巴数据分析大牛,送给学弟学妹的经验积分
- 为什么要学习R语言
- Hadoop大数据分析平台的介绍性讨论
- 最全面的Spring学习笔记
- 16个用于数据科学和机器学习的顶级平台
- 给有抱负的数据科学家的六条建议
- 如何做一枚合格的数据产品经理
- 除Kaggle外,还有哪些顶级数据科学竞赛平台
- 一个鲜为人知却可以保护隐私的训练方法:联合学习
- 干货 :送你12个关于数据科学学习的关键提示(附链接)
- 大数据行业有多少种工作岗位,各自的技能需求是什么?
- 中国移动研究院常耀斌:商用大数据平台的研发之路
- 这些数据科学家必备的技能,你拥有哪些?
- 自学成才的开发者有何优势和劣势?
- Gartner报告:正处于数据科学与机器学习工具 “大爆炸”的时代
- Ready Computing借助InterSystems IRIS医疗版为医疗机构提供具有高度互操作性和可扩展性的解决方案