zoukankan      html  css  js  c++  java
  • 常用crud

    增:@Insert("insert into  t_user (`last_name`, `sex`) values(#{lastName}, #{sex})")
     
    删:@Delete("delete  from t_user where id = #{id}")
     
    改:@Update("update  t_user set last_name = # {lastName}, sex = #{sex} where id = #{id} ")
     
    查: @Select("select  id, last_name , sex from t_user where id = #{id}")
     
    mybatis的参数传递:
    1.传递一个普通数据类型  :#{变量名}与传入的参数名要一样(推荐)
    代码:public User queryUserById(int id); 
    select `id`,`last_name` lastName,`sex` from t_user where id = #{id}
     
    2.传递多个普通数据类型
    方法1在方法的参数是多个普通数据类型的情况,传递的参数的方式是使用#{ param1 }、#{param2} ……
    代码:public List<User> queryUsersByNameAndSex(String name, int sex);
    select `id`,`last_name` lastName,`sex` from t_user where last_name like #{param1} and sex = #{param2}
    方法2 @Param注解命名参数(推荐)
    public List<User> queryUsersByNameAndSex(@Param("name") String name,@Param("sex") int sex);
    select `id`,`last_name` lastName,`sex` from t_user where last_name like #{name} and sex = #{sex}
     
    3.传递一个Map对象作为参数 :以#{mapKey}的方式输出参数值。
    Map<String, Object>param = new HashMap<String, Object>();
    param.put("name", "%bbb%");
    param.put("sex", 1);
    以#{mapKey}的方式输出参数值。
    代码:public List<User> queryUsersByMap(Map<String, Object> param);
    select `id`,`last_name` lastName,`sex` from t_user where last_name like #{name} and sex = #{sex}
     
    4.传递一个Pojo对象作为参数 :如果传入的参数是pojo数据类型(javaBean对象)。那么在xml中使用#{属性名}
    代码:public List<User> queryUsersByUser(User user);
    select `id`,`last_name` lastName,`sex` from t_user where last_name like #{lastName} and sex = #{sex}
     
    5.传递多个Pojo对象作为参数: 以 #{ param1.属性名 },#{ param2.属性名 }...
    代码:public List<User> queryUsersByUsers(User name, User sex);
    select `id`,`last_name` lastName,`sex` from t_user where last_name like #{param1.lastName} and sex = #{param2.sex}
     
    6.传递一个 List 实例或者数组作为参数对象传给 MyBatis,当你这么做的时候,MyBatis 会自动将它包装在一个 Map 中并以名称为键。List 实例将会以“list”作为key,而数组以“array”作为key
     
    7.Mysql的字符串拼接,concat函数实现
    代码:public List<User> queryUsersByName(@Param("name")String name);
    select `id`,`last_name` lastName,`sex` from t_user where last_name like concat('%',#{name},'%')
     
    resultType与resultMap的区别
    <select id="queryUsersByName" resultType="com.atguigu.pojo.User">
    我们查询都是返回一个简单的JavaBean对象,我们可以直接使用ResultType定义返回在的类型
    但是如果我们查询的结果返回在的JavaBean中,又包含一个javaBean,或者包含一个javaBean对象的集合
    那么这个时候,只能使用ResultMap来自定义返回的结果。
     
    8.动态SQL语句foreach :例如(1,2,3) ,foreach 元素的功能是非常强大的,它允许你指定一个集合,声明可以用在元素体内的集合项和索引变量。它也允许你指定开闭匹配的字符串以及在迭代中间放置分隔符。这个元素是很智能的,因此它不会偶然地附加多余的分隔符。
    delete from t_user where id in
    <foreach collection="userIds" item="id" open="("  separator="," close=")" >
            #{id}
    </foreach>
    动态SQL语句if :
    select username, email,createtime from t_user
    <where>
        <if test = "queryText != null"> 
                loginacct like concat('%' , #{queryText}, '%')
        </if>
    </where>
     
    动态SQL语句foreach的insert拼串操作 :
    <!-- insert into t_user_role(userid,roleid) values(1,3),(1,4),(1,5)-->
    insert into t_user_role(userid, roleid) values 
    <foreach collection="roleIds" item="roleid" separator=",">
        (#{userid},#{roleid})
    </foreach>
  • 相关阅读:
    svn中出现各种感叹号说明
    Oracle“记录被另一个用户锁住” 无法更新删除的解决办法
    C/C++中extern关键字详解
    Oracle创建视图view权限不足问题剖析
    和菜鸟一起学linux之常见错误的解决和常用命令
    万能数据库查询分析器使用技巧之(十一)
    orale中如何获取当前月份?
    “刘易斯拐点”后劳动力市场中的信任与有效性
    “微”力无穷:企业微信营销全攻略
    2小时精通金数据
  • 原文地址:https://www.cnblogs.com/liuyi13535496566/p/12079200.html
Copyright © 2011-2022 走看看