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好