一、MyBatis简介二、 入门案例
2.1 安装Mybatis2.2 通过xml构建SqlSessionFactory2.3 从 SqlSessionFactory 中获取 SqlSession2.4 探究已映射的 SQL 语句 三、MyBatis-全局配置文件
3.1 属性(properties)3.2 设置(settings)3.3 类型别名(typeAliases)3.4 类型处理器(typeHandlers)3.5 plugins插件3.6 environments环境3.7 dataSource3.8 mapper映射 四、MyBatis-映射文件
4.1 参数(Parameters)传递4.2 参数处理4.3 增删改查元素4.4 SQL4.5 自动映射4.6 resultMap4.7 鉴别器 五、MyBatis-动态SQL
5.1 if5.2 choose、when、otherwise5.3 trim、where、set5.4 foreach5.5 bind 六、MyBatis-缓存机制
6.1 一级缓存(本地缓存)6.2 二级缓存(全局缓存) 七、MyBatis-逆向工程
7.1 MBG的使用 八、学习Mybatis遇到的问题
解决Mybatis 报错Invalid bound statement (not found)Mybatis 报错There is no getter for property named 'lastname' in 'class com.caq.mybatis.bean.Employee'MyBatis配置文件开启驼峰命名映射
一、MyBatis简介放一个官方的解释
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
以我的角度用简单的话来说
一个持久层框架,封装大多数的 JDBC 样板代码,使得开发者只需关注 SQL 本身,而不需要花费精力去处理例如注册驱动,创建 Connection,以及确保关闭 Connection 这样繁杂的代码。通过写xml文件或者注解将Java的POJO映射成数据库中的记录
好像人家写的也很好理解,哈哈哈哈~!
下面这个是Mybatis的logo,带着红色眼罩的小胖鸟忍者
原来的名字叫iBais
本来代码在Apache放着,后来又放到Google Code上了。然后就改名为Mybatis了~
优点
很容易学,很小巧,没有第三方依赖,装两个jar包+几个sql映射文件即可灵活,因为我是学完动态sql之后才回来写的笔记,月学到后面越发现这玩意是真灵活能有很多组合呀,判断啊。然后呢,sql写在xml文件里,能方便的进行统一管理和优化。提供映射标签,支持对象与数据库的字段关系映射提供xml标签,支持动态sql就是编写一些判断语句根据实时发生的情况进行改变这就叫动态
缺点
写sql 的时候工作量很大,对于很多字段的,关联了很多表的更是这样,学着学着我就有感觉这玩意也没多容易啊不想前面学的spring和springMVC这么简单,这还是要写这么多。sql语句依赖于数据库,移植性差二级缓冲机制不太行 二、 入门案例 2.1 安装Mybatis
我们通过Maven来解决资源包问题
分别有mysql,mybatis,junit
后面我又放了个插件,防止注册的时候把xml文件打不进去(后面会用到)
Mybatis 报错There is no getter for property named ‘lastname’ in ‘class com.caq.mybatis.bean.Employee’4.0.0 com.caq Mybatis 1.0-SNAPSHOT org.mybatis mybatis 3.4.1 mysql mysql-connector-java 5.1.16 junit junit 4.13.2 src/main/java ***.xml false
出现这样的报错是什么原因呢,绝大多数是因为你的不细心导致的。
我们知道在 xxxMapper.xml 配置文件中,sql中的参数#{XXXX}要与你的JAVABean中定义名称一致(大小写要完全一致)。
第一个红框圈的要和数据库字段一样
第二个红框圈的要和JavaBean中字段一致
很显然我没有对应好~
改过来
MyBatis配置文件开启驼峰命名映射今天看SpringBoot整合Mybatis时看到了,遇到了一个遗忘的点,mybatis属性使用驼峰命名,我居然给忘了怎么配置来着。修改mybatis配置文件,配置驼峰命名。
所以整理一下这些遗忘的点和用到的配置。
mybatis支持属性使用驼峰的命名,用
属性是这样的
在setting中设置mapUnderscoreToCamelCase为true,就可以实现驼峰转换了, 这个的默认是false;
在SpringBoot 项目中没有mybatis.xml文件,可以在application.properties中,加入下面的配置项:
mybatis.configuration.mapUnderscoreToCamelCase=true或mybatis.configuration.map-underscore-to-camel-case=true



