IDEA mapper下面的xml 关于parameterType爆红的爆红的原因,以及理解?

7 篇文章 0 订阅

首先,要说一个问题这个parameterType爆红也要分情况的比如我用的IDEA版本是2019.3.3就是有这个所以即使你在yml配置了别名也会爆红,必须要在parameterType这里写上全路径

然后我们要理解一下这个parameterType属性是干什么的有什么作用?

parameterType的含义就是参数传进来的类型

我的理解是这就是一个传入进来的参数如果传入进来的是一个id这里就直接可以选int(一般删除的话可以用int),就不会爆红,如果是一个字符串的可以直接写string也不会爆红(根据用户名来进行查询)。

如果是一个对象实体类就直接写全路径不然也是映射不上的(我觉得就没啥作用了这样的话就可以直接不写这个parameterType了)所以不建议下面哪个解决方案

解决方案(inspection 这个其实就是一个检测工具)
勾选和不勾选都不重要重要的是要理解这个parameterType的含义然后做出对应的处理
注意2019.3.3默认是勾选的:idea版本2019 1.4是没有Mybatis这个工具的
在这里插入图片描述

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个示例mapper.xml模板配置: ```xml <?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="com.example.mapper.UserMapper"> <!-- 查询用户信息 --> <select id="selectUserById" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> <!-- 根据条件查询用户列表 --> <select id="selectUserList" resultType="com.example.entity.User"> SELECT * FROM user <where> <if test="name != null and name != ''"> AND name = #{name} </if> <if test="age != null"> AND age = #{age} </if> </where> </select> <!-- 新增用户 --> <insert id="insertUser" parameterType="com.example.entity.User"> INSERT INTO user (name, age) VALUES (#{name}, #{age}) </insert> <!-- 更新用户信息 --> <update id="updateUser" parameterType="com.example.entity.User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update> <!-- 删除用户 --> <delete id="deleteUserById" parameterType="int"> DELETE FROM user WHERE id = #{id} </delete> </mapper> ``` 在这个示例中,我们定义了一个命名空间为`com.example.mapper.UserMapper`的mapper文件。在该命名空间中,我们定义了五个操作: - `selectUserById`:根据用户id查询用户信息。 - `selectUserList`:根据条件查询用户列表。 - `insertUser`:新增用户。 - `updateUser`:更新用户信息。 - `deleteUserById`:根据用户id删除用户。 其中,`selectUserList`演示了使用`<where>`和`<if>`标签来动态拼接SQL条件。 在MyBatis中,我们可以通过`SqlSessionFactory`和`SqlSession`来使用mapper.xml中定义的操作。例如: ```java SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml")); SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 查询用户信息 User user = userMapper.selectUserById(1); System.out.println(user); // 查询用户列表 List<User> userList = userMapper.selectUserList("张三", null); System.out.println(userList); // 新增用户 User newUser = new User("李四", 25); userMapper.insertUser(newUser); sqlSession.commit(); // 更新用户信息 newUser.setName("王五"); userMapper.updateUser(newUser); sqlSession.commit(); // 删除用户 userMapper.deleteUserById(newUser.getId()); sqlSession.commit(); ``` 在这个示例中,我们先通过`SqlSessionFactoryBuilder`来构建`SqlSessionFactory`,然后通过`SqlSession`来获取mapper接口的代理实现类。通过代理实现类,我们可以直接调用mapper.xml中定义的方法,并传入适当的参数。最后,在执行完所有操作后,我们需要通过`sqlSession.commit()`来提交事务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值