mybatis基础犯错总结
1、关于mybatis的文件一般都是其mapper文件出错:
首先关于输入参数parameterType出错:
(1)基本数据类型:如果输入参数只有一个,其数据类型可以是基本数据类型,也可以是自己定的类型:包括int,String,Date,Integer这些。
但是要注意,在接口中的 int类型对应parameterType为int,若前面声明的是 Integer类型,则后面mapper文件中也要写Integer类型,否则报错。
//注意这里传递的类型:从controller传递过来的是Integer则,这个mapper中的parameterType必须是Integer
//若从Controller传递过来的是int,则mapper中parameterType必须是int。两者不能互用。
这个必须与controller层传递过来的类型一致。
另外在oo编程中,声明变量,能用包装类就用包装类,比如用Integer,而不用int。
int默认为0,Integer默认null。
持久层对象或者Controller、Service、Dao中用Integer。Mapper文件中用Integer
循环体,方法中用int。
这里回顾下java的基本数据类型:

基本数据类型和包装类的区别还是很大,这点估计你也是清楚的。
比如int a = 3;Integer b = new Integer(3);
a和b的值都是3,但a是值对象,b是引用对象,因此二者是不等同的。相较而言值对象使用起来更方便一些(不用手动创建对象已经实例化) char是字符型,比如 char c = 'd',这里用的是单引号,字符串用的是双引号(String s = "s"),
它并不是整数类型,只不过jdk会对照ascII表把它转成对应的数字值,我们才可以利用这个特性。
在一般的开发中我们用String比较多而char比较少,因为char的场景多半都可以用string来处理,但这并不是说char就没有作用。只不过取决于与你编写代码的严谨程度。
另外在处理buffer流时用的都是char。
再次强调char不是整数类型,char(字符类型)在内存中占2个字节,而int(整数类型)占4个字节 关于String与char的关系:
(2)复杂数据类型:包含java实体类或者多个参数,或者Map;
关于多个参数传入有两种方法:仔细看下面的区别:
Map参数示例:
a:一种是将两个字段封装成map来进行传递给mapper文件。
xml文件
<select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>
java代码
Map<String,String> map=new HasMap<String,String>();
map.put("id","2");
map.put("sex","男");
List<Teacher> tList = teacherMapper.selectTeacher(map);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString()); }
b:第二种传入多个参数的方式:使用注解的方式来传入:
另外MyBatis还提供了一个使用注解来参入多个参数的方式。
这种方式需要在接口的参数上添加@Param注解
示例:
接口方法
public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex);
XML文件
<select id="selectTeacher" parameterType="map",这里可以写也可以不写。resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>
这个xml文件中,
备注:
mysql与java数据类型的对应:

mybatis基础犯错总结的更多相关文章
- 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP
阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要 ...
- mybatis基础系列(二)——基础语法、别名、输入映射、输出映射
增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...
- MyBatis基础入门《五》核心配置文件
MyBatis基础入门<五>核心配置文件 描述: 在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明. 这里先描述项目中的一个核心配置文件:mybatis-c ...
- Makefileeasy犯错的语法
1.引言 近期学习android的Build系统,接触最多的自然就是Makefile语法.发现非常多easy出错的地方,不避开这些错误语法没法真正了解Makefile的内涵.以下就介绍遇到的一些让人困 ...
- myBatis 基础测试 表关联关系配置 集合 测试
myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...
- 致DBA:为什么你经常犯错,是因为你做的功课不够
专职做DBA已经6年多的事件了,看同行.同事犯了太多的错误,自己也犯了非常多的错误.一路走来,感触非常深.然而绝大多数的错误其实都是很低级的错误.有的是因为不了解某个引擎的特性导致:有的是因为对线上环 ...
- spring 整合Mybatis 《报错集合,总结更新》
错误:java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldExcepti ...
- JAVA之Mybatis基础入门--框架搭建与简单查询
JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...
- mybatis foreach报错It was either not specified and/or could not be found for the javaType Type handler
或许是惯性思维,在mybatis使用foreach循环调用的时候,很多时候都是传一个对象,传一个List的情况很少,所以写代码有时候会不注意就用惯性思维方法做了. 今天向sql传参,传了一个List作 ...
随机推荐
- Easy ui DateBox 控件格式化显示操作
//Easy ui datebox 控件 <input class="easyui-datebox" name="StartTime" id=" ...
- 作业 20181120-3 Beta发布
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2408 小组介绍 组长:付佳 组员:张俊余 李文涛 孙赛佳 田良 于洋 段 ...
- OpenNF tutorial复现
这篇博客记录了自己实现OpenNF官网上tutorial的过程和遇见的问题,如果有不对的地方还请批评指正! tutorial链接 实验内容 这个实验展示了如何迅速且安全地把一个TCP流从一个NF实例迁 ...
- JScript脚本
这个好强大啊 .fiddler2是部分是用这个语言开发的.
- lintcode-198-排列序号II
198-排列序号II 给出一个可能包含重复数字的排列,求这些数字的所有排列按字典序排序后该排列在其中的编号.编号从1开始. 样例 给出排列[1, 4, 2, 2],其编号为3. 思路 和 lintco ...
- C++ Primer Plus学习:第五章
C++入门第五章:循环和关系表达式 for循环 for循环的组成部分 设置初始值. 执行测试,看循环是否应该继续执行. 执行循环操作. 更新用于测试的值. 以上操作由括号括起,每个部分均是一个表达式, ...
- ORACLE公司传奇历史
ORACLE公司传奇 ORACLE公司之起源 很难想象,ORACLE 公司的这一段传奇居然要从 IBM 公司开始. 1970年的6月,IBM 公司的研究员埃德加·考特 (Edgar Frank Cod ...
- texbbox,combobox设置属性
--输入框 $("#xx").textbox('setValue','value'); //设置输入框的值 $('#xx').textbox('textbox').attr('r ...
- 转 docker的下载与安装
百度网盘下载地址:https://oomake.com/download/docker-windows 道客地址: https://link.jianshu.com/?t=https://get.da ...
- Markdown语法实践
Markdown语法实践 Markdown基本语法 1.标题 # 一级标题 ## 二级标题 ### 三级标题 eg: 一级标题 二级标题 三级标题 2.链接 标准: [Title](URL) 实例: ...


