• Mybatis(四):crud操作


    CRUD操作

    一、CRUD

    select

    • 属性分析

    ​ id

    • 命名空间中唯一的标识符
    • 接口中的方法名与映射文件中的SQL语句ID 一一对应

    parameterType

    • 传入SQL语句的参数类型

    resultType

    • SQL语句返回值类型。【完整的类名或者别名】
    • 直接在方法中传递参数

      1. 在接口方法的参数前加 @Param属性
      2. Sql语句编写的时候,直接取@Param中设置的值即可,不需要单独设置参数类型
      /通过密码和名字查询用户
      User selectUserByName(@Param("username") String username,@Param("pwd") String pwd);
      
      /*
          <select id="selectUserByNP" resultType="com.kuang.pojo.User">
            select * from user where name = #{username} and pwd = #{pwd}
          </select>
      */
      
    • 接口方法中传递Map(适用于方法参数较多的情况)

    User selectUserByName(Map<String,Object> map);
    
    <select id="selectUserByName" parameterType="map" resultType="com.kuang.pojo.User">
    	select * from user where name = #{username} and pwd = #{pwd}
    </select>
    //说明:需要传递参数类型,参数类型为map
    
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("username","小明");
    map.put("pwd","123456");
    User user = mapper.selectUserByName(map);
    // 说明:Map的 key 为 sql中取的值即可,没有顺序要求
    

    insert,update,delete

    • 所有的增删改操作都要提交事务
      • 接口所有的普通参数,最好都写上@param参数,特别是多个参数的时候一定要写
      • 根据业务需求,可以选用Map传递参数
      • 为了规范操作,尽量把paramType 和resultType都加上

    模糊查询

    方法一:在java代码中添加通配符

    string wildcardname = “%smi%”;
    list<name> names = mapper.selectlike(wildcardname);
     
    <select id=”selectlike”>
     select * from foo where bar like #{value}
    </select>
    

    方法二:在sql语句中拼接通配符(不安全,会引起sql注入)

    string wildcardname = “smi”;
    list<name> names = mapper.selectlike(wildcardname);
     
    <select id=”selectlike”>
         select * from foo where bar like "%"#{value}"%"
    </select>
    

    方法三:

    select * from foo where bar like concat('%',#{name},'%')

    多表关联删除使用级联

    外键建议建立索引,ON DELETE CASCADE 级联删除
    ON UPDATE CASCADE 级联更新

  • 相关阅读:
    来谈谈JAVA面向对象
    手把手的SpringBoot教程,SpringBoot创建web项目(一)
    【Java框架型项目从入门到装逼】第十五节
    印章文字识别
    《图像处理实例》之 曲线之间距离求解
    机器学习常用模块
    Ubutu16.04+Cuda9.2/9.0+Cudnn7.12/7.05+TensorFlow-gpu-1.8/1.6
    滑动平均模型原理+源码分析
    AlexNet实践
    TensorFlow NormLization
  • 原文地址:https://www.cnblogs.com/dreamzone/p/12344390.html
Copyright © 2020-2023  润新知