mybatis框架的注意点
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查询
- 参数类型为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 的值可以省略
- 参数为数组
<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 的值可以省略 - 参数为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
- 单表的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> - 两表关系(一对一)
<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> - 两表关系(多对多)
<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> - 两表关系(一对多,多对一)
mybatis框架的注意点的更多相关文章
- Mybatis框架的多对一关联关系(六)
一.一对多的关联映射 一对多关联查询多表数据 1接口 public interface IDeptDAO { //根据部门编号查询该部门单个查询 public Emp getEmpById(Integ ...
- Spring+SpringMvc+Mybatis框架集成搭建教程
一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...
- Mybatis框架中实现双向一对多关系映射
学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢 ...
- Hibernate框架与Mybatis框架的对比
学习了Hibernate和Mybatis,但是一直不太清楚他们两者的区别的联系,今天在网上翻了翻,就做了一下总结,希望对大家有帮助! 原文:http://blog.csdn.net/firejuly/ ...
- 初识Mybatis框架,实现增删改查等操作(动态拼接和动态修改)
此第一次接触Mybatis框架确实是有点不适应,特别是刚从Hibernate框架转转型过来,那么为什么要使用Mybatis框架,Mybatis框架和Hibernate框架又有什么异同呢? 这个问题在我 ...
- Spring+MyBatis框架中sql语句的书写,数据集的传递以及多表关联查询
在很多Java EE项目中,Spring+MyBatis框架经常被用到,项目搭建在这里不再赘述,现在要将的是如何在项目中书写,增删改查的语句,如何操作数据库,以及后台如何获取数据,如何进行关联查询,以 ...
- SSM框架-----------SpringMVC+Spring+Mybatis框架整合详细教程
1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One ...
- Spring3.0 与 MyBatis框架 整合小实例
本文将在Eclipse开发环境下,采用Spring MVC + Spring + MyBatis + Maven + Log4J 框架搭建一个Java web 项目. 1. 环境准备: 1.1 创建数 ...
- 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...
- 详解Java的MyBatis框架中SQL语句映射部分的编写
这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件 ...
随机推荐
- display:flex布局
/*背景 居中 自适应 铺满容器*/ background: center / cover; flex布局是什么? flex是Flexibe Box 的缩写,意思为”弹性布局”, 用来为盒子模型提供最 ...
- Zabbix监控平台3.2.4(二)深入理解zabbix
一,Zabbix Web操作深入 1.1 Zabbix Web下的主机和模版以及监控项的添加方式 (1)创建一个模版 我们所有的功能几乎都是在模版中定义的 我们再点进新创建的模版查看 模版里几乎可 ...
- C++/CLI
[C++/CLI] A C++/CLI application or component uses extensions to C++ syntax (as allowed by the C++ Sp ...
- Linux安装jdk.18和tomcat8
JDK1.8的安装 第一步:下载JDK1.8 1.百度搜索jdk1.8,打开属于oracle官网的搜索结果项 2.先点击接受协议选项,然后选择要下载的64位linux版本jdk,直接单击通过浏览器下载 ...
- 产品大神1--工具axure
一,axure安装 链接:https://pan.baidu.com/s/1rb3SH5HSogP1k_ARTZTflA 提取码:084p 二,axure8.0的使用 因为下面的文章都已经写的非常详细 ...
- SecureCRT连接开发板 串口传输、tftp传输
1.串口传输 使用命令:rx r是service, x是X-model模式 ①.rx 文件名 再按Enter键 ②.将需要传到板子上的文件 拖到SecureCRT里面,选择发送X-model选项 注 ...
- python之元组及其方法---整理集
元组: 区别:与列表类似,是对列表的二次加工:用小括号包括起来:元素不可修改:不可增加.删除 技巧:创建元组的时候,一般在最后一个元素后面加一个逗号:为了与方法区分:并且这个逗号不算元素例如: tu= ...
- Java反射基础知识
反射机制就是可以把一个类,类的成员(属性.方法)当成一个对象来操作,也就是说,类,类的成员,我们在运行的时候可以动态的去操作它们. 所有的Java类都继承了Object类,在Object类中定义了一个 ...
- C#smtp邮件消息提醒的一些bug总结
软件通过检测公众号的某些链接是否异常发邮件提醒.. 1:网上找了些方法有说ssl system.net.mail 不支持 ,这种说法是有问题的,其方法内设置的验证账号写成了邮箱的地址而不是账号也就是 ...
- 7.Redis主线程阻塞原因
7.Redis主线程阻塞原因7.1 发现阻塞7.2 内在原因7.2.1 API或数据结构使用不合理7.2.2 CPU饱和7.2.3 持久化阻塞7.3 外在原因7.3.1 CPU竞争7.3.2 内存交换 ...