Mybatis讲解(二)---CRUD

1、namespace

namespace中的包名要和 Dao/mapper 接口的包名一致!

2、select

选择,查询语句;

  • id : 就是对应的namespace中的方法名;
  • resultType:Sql语句执行的返回值!
  • parameterType : 参数类型!
2.1编写接口
//根据ID查询用户
User getUserById(int id);
2.2 编写对应的mapper中的sql语句
<select id="getUserById" parameterType="int" resultType="com.Devin.pojo.User">
        select * from mybatis.user where id = #{id}
</select>
2.3 测试
@Test
    public void getUserById() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        User user = mapper.getUserById(1);
        System.out.println(user);

        sqlSession.close();
    }

3、Insert

<!--对象中的属性,可以直接取出来-->
    <insert id="addUser" parameterType="com.Devin.pojo.User">
        insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd});
    </insert>

4、update

<update id="updateUser" parameterType="com.Devin.pojo.User">
        update mybatis.user set name=#{name},pwd=#{pwd}  where id = #{id} ;
    </update>

5、Delete

<delete id="deleteUser" parameterType="int">
        delete fro  id = #{id};
    </delete>

注意点: - 增删改需要提交事务!

6、分析错误

  • 标签不要匹配错
  • resource 绑定mapper,需要使用路径!
  • 程序配置文件必须符合规范!
  • NullPointerException,没有注册到资源!
  • 输出的xml文件中存在中文乱码问题!
  • maven资源没有导出问题!

7、万能Map

假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map!

//万能的Map
    int addUser2(Map<String,Object> map);

<!--对象中的属性,可以直接取出来    传递map的key-->
    <insert id="addUser" parameterType="map">
        insert into mybatis.user (id, pwd) values (#{userid},#{passWord});
    </insert>
 @Test
    public void addUser2(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);


        Map<String, Object> map = new HashMap<String, Object>();

        map.put("userid",5);
        map.put("passWord","2222333");

        mapper.addUser2(map);

        sqlSession.close();
    }

Map传递参数,直接在sql中取出key即可! 【parameterType=“map”】

对象传递参数,直接在sql中取对象的属性即可!【parameterType=“Object”】

只有一个基本类型参数的情况下,可以直接在sql中取到!

多个参数用Map,或者注解!

本文章来源于B站(狂神说) B站地址:https://space.bilibili.com/95256449

MyBatis-Plus是一个基于MyBatis框架的增强工具库,它可以简化SQL的编写过程。根据引用,MyBatis-Plus是由谁帮我们写的呢?答案是我们自己。我们需要在项目引入MyBatis-Plus的依赖,并根据需要配置相关的参数和插件。引用提到了如何配置日志,这是为了方便我们在调试和排查问题时能够更好地查看生成的SQL语句。 对于MyBatis-Plus的方法来自哪里的问题,可以根据引用的描述得知,MyBatis-Plus提供了一套CRUD扩展的方法,使得我们在操作数据库时更加方便。这些方法是MyBatis-Plus库自己定义和实现的。 关于如何使用MyBatis-Plus,根据引用给出的代码示例,我们可以通过配置拦截器组件来使用MyBatis-Plus。可以在项目定义一个MybatisPlusInterceptor的Bean,并通过addInnerInterceptor方法添加需要的插件,比如分页插件和乐观锁插件。配置好拦截器后,我们就可以直接使用MyBatis-Plus提供的Page对象进行分页查询,如引用的代码所示。 总结来说,MyBatis-Plus是我们自己引入并配置的一个增强工具库,它提供了简化SQL编写和CRUD操作的方法。我们可以根据需要配置相关参数和插件,并直接使用MyBatis-Plus提供的方法来进行数据库操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Mybatis-Plus-【通俗易懂全讲解】](https://blog.csdn.net/qq_55293923/article/details/124382040)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值