• 常用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>
  • 相关阅读:
    PHP利用CURL_MULTI实现多线程
    PHP也玩并发,巧用curl 并发减少后端访问时间
    Mysql 地区经纬度 查询
    Cron表达式简单学习
    定时任务实现
    Android ListView简单实用
    关于分布式事物 转
    关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究 转载
    数据库范式
    配置org.springframework.scheduling.quartz.CronTriggerBean (转载)
  • 原文地址:https://www.cnblogs.com/liuyi13535496566/p/12079200.html
Copyright © 2020-2023  润新知