增:@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>

常用crud的更多相关文章

  1. ExtJs之列表常用CRUD

    前端代码: Ext.onReady(function(){ Ext.define('Person', { extend: 'Ext.data.Model', fields: [{name: 'id', ...

  2. redis数据类型及常用命令介绍(图文实例)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...

  3. EntityFreamWork 项目总结

    前段时间一直在忙着处理一个B2C的商城项目,未来得整理这次项目的心得,今天偶有空闲便写下这篇文章以记录整个项目的设计及自我总结. 这个项目是我综合传智播客教学基础将传统三层架构与EntityFrame ...

  4. WinForm EF+MySql企业管理软件C/S项目实战演练

    一.课程介绍 我们都知道在软件架构方式分为:C/S和B/S两类.这里阿笨不谈论两种软件架构的优劣之分,因为它们各有千秋,用于不同场合.一位伟大的讲师曾经说过一句话:事物存在即合理!录制这堂课程的目的就 ...

  5. 【private HibernateTemplate template;】 的作用

    [private HibernateTemplate template;] 的作用 这个是在spring中定义了一个bean,它是org.springframework.orm.hibernate3. ...

  6. spring boot + spring data jpa

    Spring Data Repository的核心接口是Repository(好像也没什么好惊讶的).这个接口需要领域类(Domain Class)跟领域类的ID类型作为参数.这个接口主要是让你能知道 ...

  7. 一个Web报表项目的性能分析和优化实践(五):重构有助于性能优化么?

    项目从初次开发到现在,已经快3年了.期间,有N个工程师参与过. 需求方面:增加减少,反反复复,无数次:人力方面:增加减少,不稳定:时间方面:功能开发着急上线,Bug开发紧急修复. 因此,代码臃肿,问题 ...

  8. @TableName(mybatis-plus中的注解)

    @TableName 描述:表名注解 属性 类型 必须指定 默认值 描述 value String 否 "" 表名 schema String 否 "" sch ...

  9. Spring Boot整合Mybatis(注解方式和XML方式)

    其实对我个人而言还是不够熟悉JPA.hibernate,所以觉得这两种框架使用起来好麻烦啊. 一直用的Mybatis作为持久层框架, JPA(Hibernate)主张所有的SQL都用Java代码生成, ...

随机推荐

  1. nginx+tomcat实现负载均衡(windows环境)

    一.准备工作 nginx1.14 nginx1.14下载链接 tomcat8 tomcat8下载链接 windows系统 二.实现目标 访问http://localhost地址时, 将请求轮询到tom ...

  2. redisUtil

    package com.cinc.ecmp.utils; import org.springframework.beans.factory.annotation.Autowired; import o ...

  3. JRoll 2 适用于移动开发滚动(滑动)——轻量级插件

    JRoll,一款能滚起上万条数据,具有滑动加速.回弹.缩放.滚动条.滑动事件等功能,兼容CommonJS/AMD/CMD模块规范,开源,免费的轻量级html5滚动插件. 官网:http://www.c ...

  4. 服务端CURL请求

    服务端与服务端之间,也存在接口编程. 比如我们网站服务端,需要发送短信.发送邮件.查询快递等,都需要调用第三方平台的接口. 1.php中发送请求 ①file_get_contents函数 :传递完整的 ...

  5. 2019-8-31-dotnet-删除只读文件

    title author date CreateTime categories dotnet 删除只读文件 lindexi 2019-08-31 16:55:58 +0800 2019-02-28 1 ...

  6. Python安装jpype调用java,安装jaydebeapi通过jdbc连接数据库

    pip install JPype1或下载JPype1-0.7.0.tar.gz包 经常出现需要安装VC++服务等 测试代码如下: # Author: zfh import jpype,os,time ...

  7. MyISAM与InnoDB的索引实现区别

    一 MyISAM索引实现 1. 主键索引 MyISAM引擎使用B+树作为索引结果,叶节点的data域存放的是数据记录的地址.下图为MyISAM表的主索引,Col1为主键. 2. 辅助索引 在MyISA ...

  8. mysql主从之双主配置

    mysql双主配置 mysql双主其实就是互相同步,互为主从 任意一台都能够执行插入动作 生产环境用得非常少,因为还是担心数据一致的问题 生产环境一般来说主从已经够用 172.19.132.121的配 ...

  9. MVC 之集合类转化为DataTable

    private static DataTable ToDataTableTow(IList list) { DataTable result = new DataTable(); if (list.C ...

  10. QT信号和槽函数学习笔记

    //connect 函数有4个参数 分别是 发送者 信号.接受者 ,槽 //connect(sender,signal,receiver,slot) /* * 信号和槽 * 信号 就是一个普通的函数 ...