mybatis基础犯错总结】的更多相关文章

1.关于mybatis的文件一般都是其mapper文件出错: 首先关于输入参数parameterType出错: (1)基本数据类型:如果输入参数只有一个,其数据类型可以是基本数据类型,也可以是自己定的类型:包括int,String,Date,Integer这些. 但是要注意,在接口中的 int类型对应parameterType为int,若前面声明的是  Integer类型,则后面mapper文件中也要写Integer类型,否则报错.      //注意这里传递的类型:从controller传递过…
阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要术语: 切面:Aspect,有的地方也叫做方面.切面=切点+增强,表示我们在什么点切入蛋糕,切入蛋糕后我们以什么方式来增强这个点. 切点:Pointcut,类似于查询表达式,通过在连接点运行查询表达式来寻找匹配切入点,Spring AOP中默认使用AspjectJ查询表达式. 增强:Advice,有…
增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.delete.select(增删改查);cache.cache-ref.resultMap.parameterMap.sql.如下图: 命名空间 <mapper>根节点有个属性namespace,作用是对sql语句进行分类化管理. select节点 占位符#{} 一个<select>代表…
MyBatis基础入门<五>核心配置文件 描述: 在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明. 这里先描述项目中的一个核心配置文件:mybatis-config.xml 文件. 资料参考:http://www.mybatis.org/mybatis-3/ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC &q…
1.引言 近期学习android的Build系统,接触最多的自然就是Makefile语法.发现非常多easy出错的地方,不避开这些错误语法没法真正了解Makefile的内涵.以下就介绍遇到的一些让人困惑的语法错误 2.列举easy犯错的地方 ifeq条件推断 ifeq($(fro),no) endif 多么简单的语法.可是运行会报错例如以下: Makefile:2: *** missing separator. Stop. 原因: ifeq和左括号'('之间是必须有空格的. shell脚本的使用…
myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/5993881 在上一篇做了简单 增删改查 的测试,基本代码+api 下载 可以看上一遍博文 myBatis 基础测试 增 删 改 查 用过hibrenate 之后,感觉很好理解 动行效果: sql : CREATE TABLE `student` ( `grade_id` int(11) DEFAULT NU…
专职做DBA已经6年多的事件了,看同行.同事犯了太多的错误,自己也犯了非常多的错误.一路走来,感触非常深.然而绝大多数的错误其实都是很低级的错误.有的是因为不了解某个引擎的特性导致:有的是因为对线上环境不了解导致:有的是因为经验不足导致:一路上,跌跌撞撞,从小公司DBA,到腾讯高级DBA,再到现在的金融数据库DBA. 不由得想起5年前的我,刚进入DBA行业,缺乏经验,经常犯错误,不是我不够努力,更多的是初来咋到的我根本不知道应该在哪方面下功夫.本文就是基于这方面的考虑,根据自己在DBA这个职业上…
错误:java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException spring整合mubatis启动报错: 解决办法:一看這个报错是因为缺少包,这里缺少包:aspectjweaver.jar 這个包是spring aop 所用到的包,在网上下载导入這个包即可,下载地址:http://download.csdn.net/detail/luojiming1990…
JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但是由于全部都是以对象的形式来操作数据库,sql代码都是由框架自动生成,可操作性和灵活性比较Mybatis都要差一些.所以,Mybatis慢慢的变成多数开发的标准配置: 一.myBatis框架建设 myBatis的整体框架结构如下图所示,按照下图的工程原样建立即可(其中jar包在文章末尾提供) 二.编…
或许是惯性思维,在mybatis使用foreach循环调用的时候,很多时候都是传一个对象,传一个List的情况很少,所以写代码有时候会不注意就用惯性思维方法做了. 今天向sql传参,传了一个List作为参数,然后在xml里再foreach循环调用.然后报错信息如: mybatis foreach报错It was either not specified and/or could not be found for the javaType Type handler was null on para…
MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : 必须指定 > list > array > map-key > open > separator > close >>> 代码示例: ClientMapper.java 接口 ClientMapper.xml文件 注意: 由于接口中定义的getClient…
关本文是Mybatis基础系列的第四篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(三)——动态sql mybatis基础系列(二)——基础语法.别名.输入映射.输出映射 mybatis基础系列(一)——mybatis入门 关联查询 表设计时通常需要分析表与表的关联关系.数据库级别表与表之间的业务关系. 一对一查询 员工表和部门表之间的关系分析:一个员工只能属于一个部门. 需求:查询出员工编号为7369的员工信息和部门信息. sql语句: resultType映射 看看myba…
本文是Mybatis基础系列的第三篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(二)--基础语法.别名.输入映射.输出映射 mybatis基础系列(一)--mybatis入门 动态sql MyBatis 的强大特性之一便是它的动态 SQL.摆脱了JDBC中根据不同条件拼接 SQL 语句的痛苦.动态 SQL可以帮我们解决复杂需求.mybatis 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach等标签组…
好久不发博客了,写博文的一个好处是能让心静下来,整理下之前学习过的一些知识一起分享,大神路过~ mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.传统的 JDBC代码通常存在如下问题: 1. 频繁对数据库进行连接和关闭,造成资源浪费,性能下降. 2. SQL代码.preparedStatement参数.占位符号等硬编码到代码中,不方便维护. 3. 遍历结果集数据时,硬编码解析表字段成java属性,不方便维护. MyBatis 避免了几乎所有的…
MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为null,则不需要更新,保持数据库原值 3. 如何处理 > if > set ClientMapper.xml 文件 ClientMapper.java 测试方法: 测试结果: >>> trim  >> 属性 > prefix > suffix > pre…
MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动过的代码. ClientMapper.xml文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0/…
MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > where > set > choose( when , otherwise ) > foreach 动态SQL为Mybatis重要部分,项目也重新新建了一个:mybatis-dynamic-sql 项目结构: TblClient.java package com.charles.ent…
MyBatis基础入门<十六>缓存 >> 一级缓存 >> 二级缓存 >> MyBatis的全局cache配置 >> 在Mapper XML文件中设置缓存,默认情况下是没有开启缓存的. >> 在Mapper XML文件配置支持cache后,如果需要对个别查询进行调整,可以单独设置cache…
MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association )> >>collection >> 复杂类型集合,一对多 >> 内部嵌套 > 映射一个嵌套结果集到一个列表 >> 属性 > property : 映射数据库列的实体对象的属性 > ofType : 完整java类名或别名(集合所包括的…
MyBatis基础入门<十四>ResultMap子元素(association ) 1. id: >> 一般对应数据库中改行的主键ID,设置此项可以提高Mybatis的性能 2. result >> 映射到JavaBean的某个“简单类型”属性 3. association  >> 映射到javaBean的某个“复杂类型”属性,比如:javabean类 4. collection >> 映射到javabean的某个“复杂类型”属性,比如:集合 描…
MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =================================================================================================================================== 批量新增:方式2(数据大于1万) xml文件.接口 没有变化 . MybatisUtil工具类 测试类: 如…
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此使用. 实体类:TblClient.java 接口: 注意: 这个方法中的形参,有使用到了@Param这个参数,小括号里面的变量是在xml文件中的#{client_id} Xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnblogs.co…
MyBatis基础入门<十 一>修改数据 实体类: 接口类: xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9867563.html…
MyBatis基础入门<十>添加数据 描述: 修改了实体类:TblClient.java,将其字段:cbirthday 由String类型改成了Date类型. TblClient.java 接口类: xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请 标明源处:https://www.cnblogs.com/Charles-Yuan/p/9867453.html…
MyBatis基础入门<九>ResultMap自动匹配 描述: Mybatis执行select查询后,使用ResultMap接收查询的数据结果. 实体类:TblClient.java 接口:ClientMapper.java xml文件:ClientMapper.xml 注意: resultMap标签中,我注释掉了一行标签. 在<select>标签中书写sql语句的时候,client_birthday 字段有书写. 查看执行结果. 测试方法: 执行结果: 注意: 此次执行结果中,显…
MyBatis基础入门<八>查询参数传入Map 描述: 在执行select查询数据的时候,方法传入的参数是java.util.Map类型. 接口方法: xml文件 注意: 书写SQL语句的时候,#{baitang_name}.#{baitang_id} ,大括号里面的变量需要和参数Map中的key保持一致. 测试方法: 测试结果: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9865766.html…
MyBatis基础入门<七>查询参数传入对象 描述: 在执行查询语句的时候,传入的参数是一个对象,依据对象的属性,进行检索数据.此时,书写SQL语句中的条件时,其参数需要和对象中的属性保持一致. 实体类:TblClient.java 接口方法 注意: 接口中定义了一个新的方法(根据对象属性进行查询数据),方法的参数传入的是一个对象. xml文件 注意: >>> parameterType="baitang" resultType="baitang…
MyBatis基础入门<六>Like模糊查询 描述: 未改动的文件,不再粘贴出来.项目中SQL的xml映射文件重要标签如下: mapper namespace cache 配置给定命令空间的缓存 cache-ref 从其他命令空间引用缓存配置 resultMap 用来描述数据库结果集和对象的对应关系 sql 可以重用的SQL块,也可以被其他语句引用 insert 映射插入语句 update 映射更新语句 delete 映射删除语句 select 映射查询语句 一.mapper 1. names…
MyBatis基础入门<四>接口方式.Select查询集合 描述: 在<MyBatis基础入门<二>Select查询>中有说过,SQLSession有两种用法,这里以第二种方式: 基于Mapper接口方式 进行查询数据. 未改动过的文件,不再粘贴出来. 项目结构: ClientMapper.java package com.charles.dao; import java.util.List; import com.charles.entity.TblClient; p…
MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不再粘贴出来. 项目结构: ClientMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper…