zoukankan      html  css  js  c++  java
  • 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 级联更新

  • 相关阅读:
    在宏块级冗余可调的多描述视频编码算法方面取得进展(转载)
    C++单例模式
    C++手动实现库函数
    C#操作java平台生成的公钥
    C++之位操作符
    Windows 8 应用栏
    Windows 8 本地数据存储
    Win8的页面缓存
    操作符sizeof
    three.js结合geoJson绘制中国地图
  • 原文地址:https://www.cnblogs.com/dreamzone/p/12344390.html
Copyright © 2011-2022 走看看