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基础犯错总结的更多相关文章

  1. 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP

    阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要 ...

  2. mybatis基础系列(二)——基础语法、别名、输入映射、输出映射

    增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...

  3. MyBatis基础入门《五》核心配置文件

    MyBatis基础入门<五>核心配置文件 描述: 在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明. 这里先描述项目中的一个核心配置文件:mybatis-c ...

  4. Makefileeasy犯错的语法

    1.引言 近期学习android的Build系统,接触最多的自然就是Makefile语法.发现非常多easy出错的地方,不避开这些错误语法没法真正了解Makefile的内涵.以下就介绍遇到的一些让人困 ...

  5. myBatis 基础测试 表关联关系配置 集合 测试

    myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...

  6. 致DBA:为什么你经常犯错,是因为你做的功课不够

    专职做DBA已经6年多的事件了,看同行.同事犯了太多的错误,自己也犯了非常多的错误.一路走来,感触非常深.然而绝大多数的错误其实都是很低级的错误.有的是因为不了解某个引擎的特性导致:有的是因为对线上环 ...

  7. spring 整合Mybatis 《报错集合,总结更新》

    错误:java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldExcepti ...

  8. JAVA之Mybatis基础入门--框架搭建与简单查询

    JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...

  9. mybatis foreach报错It was either not specified and/or could not be found for the javaType Type handler

    或许是惯性思维,在mybatis使用foreach循环调用的时候,很多时候都是传一个对象,传一个List的情况很少,所以写代码有时候会不注意就用惯性思维方法做了. 今天向sql传参,传了一个List作 ...

随机推荐

  1. python爬取淘宝华为手机

    import re from selenium import webdriver from selenium.common.exceptions import TimeoutException fro ...

  2. YAML 基础

    YAML 基础 简介 对象 数组 常量 引用 1.  简介 YAML 是专门用来写配置文件的语言,非常简洁和强大! 它的基本语法规则有: 大小写敏感: 使用缩进表示层级关系: 缩进时不允许使用 Tab ...

  3. mysql group by 取第一条

    select * from table where id in (select max(id) from table group by sku) 说明:id是自增序列,sku是表中的一个字段

  4. 关于css文字的扩展

    1.不换行: .title{ white-space:nowrap; text-overflow:ellipsis; } 2.超出变三点 .title{ white-space:nowrap; tex ...

  5. Scrum立会报告+燃尽图(十月二十六日总第十七次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...

  6. 奥特曼小分队之we are a team

    团队名称:奥特曼小分队 团队博客链接:http://cnblogs.com/ATMXFD 团队负责跑腿的:李全清 http://www.cnblogs.com/QuanQingli/ 团队成员: 孙乐 ...

  7. C++对象内存布局测试总结

    C++对象内存布局测试总结 http://hi.baidu.com/����/blog/item/826d38ff13c32e3a5d6008e8.html 上文是半年前对虚函数.虚拟继承的理解.可能 ...

  8. 爬虫学习之-urlparse之urljoin()

    首先导入模块,用help查看相关文档 >>> from urlparse import urljoin >>> help(urljoin) Help on func ...

  9. [CB] 中国超算前100 (联想40 曙光40 浪潮12 国防科大4 华为2 国家并行工程中心2 )

    转帖 地址: https://www.cnbeta.com/articles/tech/779633.htm 榜单的前三名和去年相比没有任何变化,依然分别是部署在国家超级计算无锡中心的“神威·太湖之光 ...

  10. Java进行Base64的编码(Encode)与解码(Decode)

    关于base64编码Encode和Decode编码的几种方式 Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便 ...