MyBatis学习教程
文章平均质量分 56
我的MyBatis入门学习及经验汇总。让你用20%的时间掌握80%的MyBatis应用知识点。
唐大麦
只要往前走,就不会迟。精疲力尽的时侯应该选择休息,切不可放弃。
展开
-
【MyBatis学习01】一个简单入门实例
本文博客地址:http://blog.csdn.net/soonfly/article/details/63323701 (转载请注明出处) mybatis框架是一个持久层框架,它提供一种“半自动化”的ORM实现。mybatis主要关注POJO(Plain Old Java Objects,普通的Java 对象)与SQL之间的映射关系,对于SQL语句,需要自己编写。 Mybatis的使用非常简单,原创 2017-03-18 22:44:43 · 1305 阅读 · 0 评论 -
【MyBatis学习02】全局配置文件
本文博客地址:http://blog.csdn.net/soonfly/article/details/63352180 (转载请注明出处)在入门实例中,最先接触的是Mybatis全局配置文件。该配置文件的顶级标签是:configuration。在它之下,有以下子标签: 普通开发过程中(如入门实例)我们用四个标签就能完成配置工作。它们分别是: properties、 typeAliases、原创 2017-03-18 23:21:32 · 2272 阅读 · 0 评论 -
【MyBatis学习03】调用Mapper映射的3种使用方式
本文博客地址:http://blog.csdn.net/soonfly/article/details/63363004 (转载请注明出处)继续延用入门实例《【MyBatis学习01】一个简单入门实例》中的例子来阐述一、(推荐)service访问Mapper映射器接口(代理DAO)具体实现步骤参考《【MyBatis学习01】一个简单入门实例》 在service中采用sqlSession.getMa原创 2017-03-18 23:33:50 · 7215 阅读 · 0 评论 -
【MyBatis学习04】大于等于>=及小于等于<=处理及转义字符
使用mybatis 时sql语句是写在xml文件中,如果sql中有一些特殊的字符的话,比如< ,<=,>,>=等符号,会引起xml格式的错误,需要替换掉,或者不被转义。 有两种方法可以解决:转义字符和标记CDATA块方式1、转义字符<select id="searchByPrice" parameterType="Map" resultType="Product"> <!-- 方式1、转义原创 2017-03-18 23:45:59 · 21380 阅读 · 1 评论 -
【MyBatis学习05】传入参数parameterType
在前面的mapper.xml的select、insert、update、delete这些元素中,我们已接触了传入参数,并通过parameterType指定传入参数的类型。注意不要和parameterMap混淆了。(parameterMap几乎很少场景下用了)MyBatis可以使用的parameterType有基本数据类型和Java复杂数据类型。 复杂数据类型包含Java实体类、Map等。一、基本数原创 2017-03-18 23:52:13 · 7513 阅读 · 0 评论 -
【MyBatis学习06】_parameter:解决There is no getter for property named in class java.lang.String
我们知道在mybatis的映射中传参数,只能传入一个。通过#{参数名} 即可获取传入的值。Mapper接口文件:public int delete(int id) throws Exception;MapperL配置文件:<delete id="delete" parameterType="int"> delete from user where id=#{id}</delete>接口中我原创 2017-03-19 00:02:40 · 21843 阅读 · 0 评论 -
【MyBatis学习07】输出类型resultType及输出参数映射resultMap
使用mybatis操作时,对于SQL语句返回结果的处理通常有两种方式,一种是resultType,另一种是resultMap。 resultType:如果要填充的pojo属性和数据库列名完全一致,可采用resultType。如果出现不一致的情况下,系统并不会报错,只是pojo的属性会填充成null。 resultMap:如果出现不一致的情况下怎么办呢?就要用到reslutMap了。pojo类如下原创 2017-03-19 19:44:07 · 2934 阅读 · 0 评论 -
【MyBatis学习08】动态SQL
动态SQL是Mybatis的牛B功能之一。以前写查询,最痛苦的就是拼SQL语句。如根据参数拼接查询条件,为空的不参与where条件;写where条件得保证第一条不能有and(所以还得写个1=1),写in你得注意逗号 。有时少打豆号,少打空格什么的,就给你个错误提示:You have an error in your SQL syntax;眼睛都能给找花。比如前文提及的<select id="sear原创 2017-03-19 19:50:34 · 914 阅读 · 1 评论 -
【MyBatis学习09】SQL片段
在写SQL语句时,有很多是可以重用的,比如前台显示会员,必须是审核通过、没有软删除、没有被锁定。 那么这条件应该是公用:isdel=0 and islock=0 and isvalidate=1 因为在所有外部场景中查询用户的语句中都要用到,如查询单个,搜索用户列表,查询商品购买用户等等。基于重用的思想,mybatis提供了sql片段。一、创建<sql id="member_mustWhere"原创 2017-03-19 19:55:15 · 906 阅读 · 0 评论 -
【MyBatis学习10】关联关系association:1对1关联的三种方法
本篇主要讲关联关系:一对一关系与一对多关系。 先建5个表: DROP TABLE IF EXISTS `category`;CREATE TABLE `category` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `catename` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENG原创 2017-03-19 20:06:21 · 12602 阅读 · 0 评论 -
【MyBatis学习11】关联关系collection:1对多关联的两种方法
接着上文《关联关系association:1对1关联的三种方法 》的例子 一对多关系 [order表]–>[order_detail表]是1对多(1.n)关系。1个订单可以由多个订单分录(购买的商品)组成的。1对多关联关系可以理解为一个对象的内部有一个列表。 在后台系统中我们点击订单列表会进到订单详情页 有两种方式可以实现:一、(推荐)用sql联合查询,使用collection标签sql查询原创 2017-03-19 20:17:21 · 2715 阅读 · 0 评论 -
【MyBatis学习12】多对多关联
这篇说多对多关系。多对多其实就是一对多的组合关系。 回忆前文中几个重要的关系: 1、1个用户可以有0个或多个订单:[user表]–>[order表]是1对多(0.n)关系 2、1个有效订单会购买1条或多条商品分录:[order表]–>[order_detail表]是1对多(1.n)关系 3、1条商品分录必定对应一个产品详情:[order_detail表]–>[product表]是1对1关系原创 2017-03-19 20:22:26 · 607 阅读 · 0 评论 -
【MyBatis学习13】一、二级缓存及分布式实现
MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存。一级、二级只是命名而已,实际上并不是递进关系。一、一级缓存MyBatis在SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候,如果判断先前有完全一样的查询,会直接从缓存中直接将结果取出,返回给用户。其内部就是通过一个简单的HashMap<k,v> 来实现的。1、作用范围 每当我们使用MyBa原创 2017-03-21 19:33:15 · 1388 阅读 · 0 评论 -
【MyBatis学习14】MyBatis和Spring整合
本文博客地址:http://blog.csdn.net/soonfly/article/details/64495909 (转载请注明出处) MyBatis和Spring整合可以有很多种方式,只要明白几个重要的类,就能随心所欲整合了。导入包 我们可以从Mybatis官网上下载Mybatis-Spring的jar包添加到我们项目的类路径下。 当然不要忘记添加Mybatis的相关jar包和Sprin原创 2017-03-21 20:06:31 · 679 阅读 · 0 评论 -
【MyBatis学习15】mybatis-generator生成逆向工程两种方式
本文博客地址:http://blog.csdn.net/soonfly/article/details/64499423 (转载请注明出处) mybatis官方提供了一个逆向工程包,可以针对数据库表自动生成mybatis执行所需要的Pojo、Mapper xml文件、Mapper Interface接口文件。 mybatis-generator有很多种用法:命令行、eclipse/IDEA、Mav原创 2017-03-21 20:21:11 · 20962 阅读 · 3 评论 -
【MyBatis学习16】自定义类型处理器typeHandlers介绍
我们在写mapper映射器的配置文件时,不经意间已经用到类型转换,不过是mybatis帮我们完成的。<update id="update" parameterType="twm.mybatisdemo.pojo.User"> update user set username=#{username},password=#{password},address=#{address} wh原创 2017-03-24 11:06:21 · 6593 阅读 · 3 评论 -
【MyBatis学习17】用typeHandlers处理enum类型
如果想使用mybatis自带的枚举类处理,有2种方式,一个是EnumTypeHandler,一个是EnumOrdinalTypeHandler。 区别如下: EnumTypeHandler直接存储name值。它是mybatis默认的枚举类型转换器。 EnumOrdinalTypeHandler存储enum类里的序号值,此时数据库表字段一般对应用smallint/int类型的处理。使用的原创 2017-03-28 19:22:13 · 9970 阅读 · 3 评论 -
【MyBatis学习18】使用注解配置Mapper
MyBatis支持使用注解来配置映射的sql语句,这样可以省掉映射器xml文件。一、映射语句1、insert 比如入门实例中的:public int insert(User user) throws Exception;<insert id="insert" parameterType="twm.mybatisdemo.pojo.User" useGeneratedKeys="true" key原创 2017-03-28 19:30:36 · 9482 阅读 · 3 评论