mybatis传值之map

我们知道在mybatis中传值给sql语句的方式有:javabean,基本数据类型,还有map...

今天我们来看下什么时候需要用到map

在javabean不够的时候,我们可以使用map来传值给sql。比如两张表关联查询的时候,需要用到两张表中的字段,这个时候我们就可以使用map来进行传值。因为我们没有必要新建一个javabean来特意的给这个sql来使用。

1、通过map来新增学生信息

public class UserTest {
	public static void main(String[] args) throws Exception {
		String resource = "sqlMapConfig.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlSession = factory.openSession();
		Map<String, String> map = new HashMap<>();
		map.put("name", "张三");
		map.put("address", "南京");
		int count = sqlSession.insert("addStudent", map);
		sqlSession.commit();
	}

<?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="userNameSpace">

	<insert id="addStudent" parameterType="map">
		insert into student
		(name,address) values (#{name},#{address})
	</insert>

</mapper>

注意点:

1、在mybatis中事务自动提交默认是关闭的,所以需要我们手动的commit()。

2、map即可以作为参数传入到sql中,也可以将sql的查询结果集封装成map在传给我们。

3、map就为参数传给sql语句的时候,#{}这里面必须是map的可以。

4、分页查询的时候,我们一般使用map传值。

5、map比较灵活,但是可读性没有javabean好

相关文章

Mybatis参数传递

1. 概述Mybatis的sql参数传递就是将接口方法中定义的参数传输到sql中。sql有两种形式,一种是XML格式(Mapper映射器)中的sql;一种是注解方式的sql。常用参数的类型主要包括:基...

Mybatis中传递多个参数的4种方法

现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一种学问。...

SpringBoot实战:文件上传的高阶玩法,秒传、断点续传、分片传

在现代Web应用中,文件上传功能几乎是不可或缺的。然而,随着文件体积的增大和网络环境的不稳定性,传统的文件上传方式已经无法满足需求。本文将深入探讨SpringBoot中实现文件上传的高阶玩法,包括秒传...

Java finally语句到底是在return之前还是之后执行?

网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语...

PHP函数的实现原理及性能分析

前言在任何语言中,函数都是最基本的组成单元。对于php的函数,它具有哪些特点?函数调用是怎么实现的?php函数的性能如何,有什么使用建议?本文将从原理出发进行分析结合实际的性能测试尝试对这些问题进行回...