Mybatis 坑路3 -> 基于 XML 配置映射器

这篇博客详细介绍了MyBatis中基于XML配置的映射器,包括映射器配置文件与接口的关联、INSERT、UPDATE、DELETE和SELECT语句的配置方法,重点解析了ResultMap的使用,包括结果集映射到Map、一对一和一对多映射的实现。通过实例展示了MyBatis如何简化SQL操作并提高代码的可维护性。
摘要由CSDN通过智能技术生成

基于 XML 配置映射器

映射器配置文件和映射器接口

INSERT 语句

UPDATE 语句

DELETE 语句

SELECT 语句

结果集映射 ResultMap

拓展 ResultMap

一对一映射

一对多映射

基于 XML 配置映射器

  关系型数据库和 SQL 是经受时间考研和验证的数据存储机制。和其他的 ORM 框架如 Hibernate 不同,MyBatis 鼓励开发者考研直接使用数据库,而不是将其对开发者隐蔽,因为这样考研充分发挥数据库服务器所提供的 SQL 语句的巨大威力。与此同时,MyBatis 消除了书写大量冗余代码的痛苦,它让使用 SQL 更容易。
  在代码里直接嵌套 SQL 语句是很差的编码实践,并且维护起来困难。MyBatis 使用了映射器配置文件或注解来配置 SQL 语句。在以下的学习中,我们会看到具体怎样使用映射器配置文件来配置映射器 SQL 语句。

映射器配置文件和映射器接口

  在 xx.mybatis3.mappers 包中的 StudentMapper.xml 配置文件内,配置 id 为 “findStudentById” 的 SQL 语句:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xx/mybatis3.mappers.StudentMapper">
	<select id="findStudentById" parameterType="int" resultType="Student">
		select stud_id as studid,name,email,dob from Students where stud_id = #{studId}
	</select>
</mapper>

通过下列代码调用 findStudentById 映射的 SQL 语句:

public Student findStudentById(Integer studId){
	SqlSession sqlSession = MyBatisUtil.getSqlSession();
	try{
		Student student = sqlSession.selectOne("xx.mybatis3.mappers.StudentMapper.findStudentById",studId);
		return student;
	} finally {
		sqlSession.close();
	}
}

INSERT 语句

  MyBatis 提供了多种元素来配置不同类型的语句,如 SELECT,INSERT,UPDATE,DELETE。接下来让我们看看如何具体配置映射语句:

INSERT 语句:

<insert id="insertStudent" parameterType="Student">
	INSERT INTO STUDENTS(STUD_ID,NAME,EMAIL,PHONE) VALUES(#{studId},#{name},#{email},#{phone})
</insert>

  在上述的 INSERT 语句中,我们为可以自动生成(auto-generated)主键的列 STUD_ID 插入值。我们可以使用 useGeneratedKeys 和 keyProperty 属性让数据库生成 auto_increment 列的值,并将生成的值设置到其中一个输入对象属性内,如下所示:

<insert id="insertStudent" parameterType="Student" useGeneratedKeys="true" keyProperty="studId">
	INSERT INTO STUDENTS(NAME,EMAIL,PHONE) VALUES (#{name},#{email},#{p
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值