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. H2O Driverless AI

    H2O Driverless AI(H2O无驱动人工智能平台)是一个自动化的机器学习平台,它给你一个有着丰富经验的“数据科学家之盒”来完成你的算法. 使AI技术得到大规模应用 各地的企业都意识到人工智 ...

  2. 3.10-通过requests、BeautifulSoup、webbrowser模块的相关方法,爬取网页数据示例程序(一)

    import requests,bs4res=requests.get('https://www.hao123.com/')print('res对象的类型:',type(res))res.raise_ ...

  3. ES6的新特性(18)——async 函数

    async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generato ...

  4. centos下安装升级python到python3.5

    本文摘抄自:https://www.cnblogs.com/edward2013/p/5289056.html  请支持原版 CentOS7安装Python3.5   2. 安装Python的依赖包 ...

  5. pat甲级1002

    1002. A+B for Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue T ...

  6. FPGA的软核与硬核

    硬核 zynq和pynq系列的fpga都是双ARM/Cortex-A9构成,这里的ARM处理器为硬核,Cortex-A9部分为FPGA部分.即整体分为两部分:PS/PL.PS部分为A9处理器部分,PL ...

  7. 解决pciss_spc导入提示表空间不存在以及扩展失败的问题

    select NAME FROM USER$ ORDER BY NAME ; CREATE USER pciss IDENTIFIED BY pciss ; GRANT DBA TO pciss ; ...

  8. php面试必知必会常见问题

    1 说出常用的10个数组方法 我觉得数组比较最能体现PHP基础语法的一个数据结构了,下面给大家列一下常用的10个关于操作数组的函数 in_array(判断数组中是否有某个元素) implode(将数组 ...

  9. 【C++】深度探索C++对象模型读书笔记--关于对象(Object Lessons)

    前言中的内容: 1.什么是C++对象模型? 1.语言中直接支持面向对象程序设计的部分 2. 对于各种支持的底层实现机制 2. C++ class的完整virtual functions在编译时期就固定 ...

  10. 【.Net】Net开发

    博客里的好多文章都是本人看着比较好,就转过来的,好少自己亲自去写点什么,也很少把自己学的一点心得于大家分享,今天特别想聊一下,关于本人做Net开发时的那段回忆! 一.关于知识的回忆 还记得Handle ...