zoukankan      html  css  js  c++  java
  • Mybatis的CRUD

    3、CRUD

    3.1、namespace(20-12-16)

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

    3.2、select

    选择,查询语句:

    • id:就是对应的namespace中的方法名
    • resultType:SQL语句执行的返回值!
    • parameterType:参数类型!
    1. 编写接口

          //根据ID查询用户
          User getUserById(int id);
      
    2. 编写对应的mapper中的sql语句

          <select id="getUserById" parameterType="int" resultType="com.kuang.pojo.User">
              select * from mybatis.user where id = #{id}
          </select>
      
    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.3、insert

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

    3.4、update

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

    3.5、delete

        <delete id="deleteUser" parameterType="int">
            delete from mybatis.user where id=#{id}
        </delete>
    

    注意点:

    • 增删改需要提交事务!!!

    3.6、分析错误

    • 标签不要匹配错
    • resource 绑定 mapper ,需要使用路径!
    • 程序配置文件必须符合规范!
    • NullPointException ,没有注册到资源!
    • 输出的xml文件中存在中文乱码问题!(解决方法:idea中File Encoding 全都改成UTF-8!)
    • maven资源没有导出问题!

    3.7、万能Map

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

        //万能Map
        int addUser2(Map<String,Object> map);
    
        <!--对象中的属性,可以直接取出来  传递map的key-->
        <insert id="addUser2" parameterType="map">
            insert into mybatis.user(id,pwd) value (#{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,或者注解!

    3.8、模糊查询

    模糊查询怎么写?

    1. Java代码执行的时候,传递通配符 % %

      List<User> userList = mapper.getUserLike("%李%");
      
    2. 在SQL拼接中使用通配符!

      select * from mybatis.user where name like "%"#{value}"%"
      
    本人学习Java的一片私人空间……
  • 相关阅读:
    Atitit.Java exe bat  作为windows系统服务程序运行
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结
  • 原文地址:https://www.cnblogs.com/none-space/p/14146149.html
Copyright © 2011-2022 走看看