1.在mapper.xml文件中

resultType:返回结果类型,只能用于单表
paramsType:接收参数类型,基本数据类型可省略

2.给实体类起别名

在mybatisConfig.xml配置
<configuratoin>
<typeAliases>
1.<typeAlias type="类的完整路径",alias="别名"/>
       2.<package name="扫描实体类所在的包"/>,别名为类名小写
</typeAliases>
<configuratoin>

3.获得新增数据的id

在Mapper.xml中的新增代码中加入
<insert userGenerateKeys="true" keyProperty="id的列名" .....

4.mybatis的in查询

  1. 参数类型为list集合

    <select  id="findall" resultType="bean.Emp">
    select * from emp where empno in
    <foreach collection="list" item="a" open="("
       separator="," close=")" >
    #{a}
    </foreach>
    </select>
    注意:parameterType 的值可以省略 
  2. 参数为数组
     <select  id="findall" resultType="bean.Emp">
    select * from emp where empno in
    <foreach collection="array" index="b" item="a" open="("
    separator="," close=")" >
    #{a}
    </foreach>
    </select>
    注意:parameterType 的值可以省略
  3. 参数为map
     <select  id="findall" resultType="bean.Emp">
    select * from emp where empno in
    <foreach collection="keya" index="b" item="a" open="("
    separator="," close=")" >
    #{a}
    </foreach>
    </select>
    注意:parameterType 的值可以省略
    传的值:
    Map map=new HashMap();
    map.put("keya", list1);

5.模糊查

<if test="ename!=null and ename!=''">
and ename like '%${属性名}%'
</if>

注意:test属性中读取属性值时直接写属性名

模糊查询读取属性时使el 表达式,${属性名}

除以上位置外,都使用#{属性名}

多个条件时使用and,or 拼接

6.resultMap

  1. 单表的resultMap

    resultType="指定返回值的类型"//当列名和属性名一致时使用
    resultMap="aaa" //1.当列名和属性名不一致 2.做多表查询时
    mybatis 能实现的是单标的自动操作 <resultMap id="aaa" type="bean.Dept">
    <!-- 可以手动指定列名和属性名的关系 ,非主键列使用result 标签,主键
    列使用id 标签-->
    <id property="dept_no" column="deptno"></id>
    <result property="d_name" column="dname"/>
    <result property="d_loc" column="loc"/>
    </resultMap>
  2. 两表关系(一对一)
    <select id="方法名" resultMap="随便取">
    sql语句
    </select>
    <resultMap="对应随便取" type="实体类">
    <id column="主键名称" property="对应实体类主键”>
    <result column="非主键名称" property="对应实体类非主键”>
    存的是一方的话使用association 子标签
    <association property="实体类中对应属性名" javaType="实体类名称">
    <id column="主键名称" property="对应实体类主键”>
    <result column="非主键名称" property="对应实体类非主键”>
    </ association>
    </resultMap>
  3. 两表关系(多对多)
    <select id="方法名" resultMap="随便取">
    sql语句
    </select>
    <resultMap="对应随便取" type="实体类">
    <id column="主键名称" property="对应实体类主键”>
    <result column="非主键名称" property="对应实体类非主键”>
    存的是集合的话使用Collection 子标签
    <collection property="属性名" ofType="java 类型">
    <id column="主键名称" property="对应实体类主键”>
    <result column="非主键名称" property="对应实体类非主键”>
    </ collection>
    </resultMap>
  4. 两表关系(一对多,多对一)

mybatis框架的注意点的更多相关文章

  1. Mybatis框架的多对一关联关系(六)

    一.一对多的关联映射 一对多关联查询多表数据 1接口 public interface IDeptDAO { //根据部门编号查询该部门单个查询 public Emp getEmpById(Integ ...

  2. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  3. Mybatis框架中实现双向一对多关系映射

    学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢 ...

  4. Hibernate框架与Mybatis框架的对比

    学习了Hibernate和Mybatis,但是一直不太清楚他们两者的区别的联系,今天在网上翻了翻,就做了一下总结,希望对大家有帮助! 原文:http://blog.csdn.net/firejuly/ ...

  5. 初识Mybatis框架,实现增删改查等操作(动态拼接和动态修改)

    此第一次接触Mybatis框架确实是有点不适应,特别是刚从Hibernate框架转转型过来,那么为什么要使用Mybatis框架,Mybatis框架和Hibernate框架又有什么异同呢? 这个问题在我 ...

  6. Spring+MyBatis框架中sql语句的书写,数据集的传递以及多表关联查询

    在很多Java EE项目中,Spring+MyBatis框架经常被用到,项目搭建在这里不再赘述,现在要将的是如何在项目中书写,增删改查的语句,如何操作数据库,以及后台如何获取数据,如何进行关联查询,以 ...

  7. SSM框架-----------SpringMVC+Spring+Mybatis框架整合详细教程

    1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One  ...

  8. Spring3.0 与 MyBatis框架 整合小实例

    本文将在Eclipse开发环境下,采用Spring MVC + Spring + MyBatis + Maven + Log4J 框架搭建一个Java web 项目. 1. 环境准备: 1.1 创建数 ...

  9. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

  10. 详解Java的MyBatis框架中SQL语句映射部分的编写

    这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件 ...

随机推荐

  1. SSM商城项目(十一)

    1.   学习计划 1.sso注册功能实现 2.sso登录功能实现 3.通过token获得用户信息 Ajax跨域请求(jsonp) 2.   Sso系统工程搭建 需要创建一个sso服务工程,可以参考e ...

  2. day47 选择器优先级及嵌套关系

    复习 1.前端: 网页, html + css + js 2.html三个组成部分:标签,指令和转义字符 标签: <>包裹, 以字母开头, 可以结合-|数字, 能被浏览器解析的标记 3.常 ...

  3. Java跨平台的原理

    使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有Java跨平台的特性, 事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的. Ja ...

  4. centos7上安装zabbix4.0

    zabbix4.0已经推出有一段时间了,针对之前版本做了很多优化配置,易用性得到提高,特别lts(long team support)长技术支持版本,官方说提供5年的稳定技术支持,在商业化运用上,是比 ...

  5. 从零开始学spring cloud(三) -------- Eureka简介

    1.服务发现组件:Eureka Eureka的开源文档介绍地址:https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance What is Eu ...

  6. vue的搭建项目

    请求的封装,先在src下面创建一个utils的文件夹,文件夹里面有ajax.js loading.js index.js to 1 请求的封装 ajax文件 需要引入的文件在后面 /* * [page ...

  7. mysql设置存储中文变成问号或者乱码

    技术交流群: 816227112 问题: 解决办法: 修改my.ini  如果是my-default.ini 要重命名成my.ini 要注意顺序,有可能服务启动不起来 [mysqld] charact ...

  8. stm32定时器时钟以及中间对齐模式

    在永磁同步电机的控制中,需要对电机的三相定子施加一定的电压,才能控制电机转动.现在用的较多的是SVPWM(SVPWM的具体原理会在后面另写一篇博客说明),要想产生SVPWM波形,需要控制的三相电压呈如 ...

  9. 创建ResultUtils类

    1.在pom.xml中增加maven资源 <dependency> <groupId>com.alibaba</groupId> <artifactId> ...

  10. vue--1.环境搭建及创建项目

    转自https://blog.csdn.net/junshangshui/article/details/80376489 一.环境搭建及创建项目 1.安装node.js,webpack 2.安装vu ...