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的一片私人空间……
  • 相关阅读:
    php遍历目录下的所有文件夹
    PHP 遍历文件
    PHP中public protected private的区别
    mysql数据库优化的方法
    Thinkphp 验证器
    PHP 接口
    php获取表单的值
    PHP 数组
    php 递归
    [go系列] 函数
  • 原文地址:https://www.cnblogs.com/none-space/p/14146149.html
Copyright © 2011-2022 走看看