
Mybatis
alinshen
这个作者很懒,什么都没留下…
展开
-
mybatis中"#"和"$"的区别
动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}。 在下面的语句中,如果 username 的值为 zhangsan,则两种方式无任何区别: select * from user where转载 2017-04-29 13:50:23 · 330 阅读 · 0 评论 -
【MyBatis学习15】MyBatis的逆向工程生成代码
1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.Java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。2. 使用逆向工程 使用mybatis的逆向工程,转载 2017-07-02 21:37:11 · 376 阅读 · 0 评论 -
【MyBatis学习14】MyBatis和Spring整合
前面十几篇博文总结了mybatis在开发中的相关技术,但在实际中都是和spring整合开发的,所以这里总结一下mybatis和spring的整合方法,并在整合后进行测试。1. 整合的环境 这都是老掉牙的问题了,不管是开发还是整合,首先环境肯定得有,环境嘛,除了Java环境和开发环境外,那就是jar包咯,关于mybatis和spring整合的jar包,我已经上传到下载频道了==>传送门转载 2017-07-02 21:11:41 · 229 阅读 · 0 评论 -
【MyBatis学习13】MyBatis中的二级缓存
1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的。为了更加清楚的描述二级缓存,先来看一个示意图: 从图中可以看出:sqlSession1去查询用户id为1的用户信息,查询到用户信息会将查询数据存储到该UserMapper的二级转载 2017-07-02 21:09:51 · 220 阅读 · 0 评论 -
【MyBatis学习12】MyBatis中的一级缓存
缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图: 从图中可以看出:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。二级缓存是转载 2017-07-02 21:08:34 · 198 阅读 · 0 评论 -
【MyBatis学习11】MyBatis中的延迟加载
1. 什么是延迟加载 举个例子:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 所以延迟加载即先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 我们来对比一下:关联查询:SELECT orders.*, user.userna转载 2017-07-02 21:07:32 · 164 阅读 · 0 评论 -
【MyBatis学习10】高级映射之多对多查询
本文来总结一下mybatis中的多对多映射,从第8节的文章中可以看出,用户表和商品表示多对多关系,它们两的多对多是通过订单项和订单明细这两张表所关联起来的,那么这一节主要来总结一下用户表和商品表之间的多对多映射。 首先在上一节的基础上继续写sql,SELECT orders.*, user.`username`, user.`sex`, user.`address`,转载 2017-07-02 21:03:46 · 265 阅读 · 0 评论 -
【MyBatis学习09】高级映射之一对多查询
上一篇博文总结了一下一对一的映射,本文主要总结一下一对多的映射,从上一篇文章中的映射关系图中可知,订单项和订单明细是一对多的关系,所以本文主要来查询订单表,然后关联订单明细表,这样就有一对多的问题出来了。 首先还是先写sql语句,在写sql语句的时候遵循两点:查询的主表是哪个? 订单表查询的关联表是哪个? 订单明细表 明确了主表和关联表,下面就可以写sql了,我们在上转载 2017-07-02 21:02:30 · 197 阅读 · 0 评论 -
【MyBatis学习08】高级映射之一对一查询
从这一篇博文开始,将总结一下mybatis中的几个高级映射,即一对一、一对多、多对多查询,这篇先总结一下mybatis中的一对一查询。 为了模拟这些需求,事先要建立几个表,不同的表之间将对应上面提到的不同的映射,为此,我建立4个表,如下:DROP TABLE IF EXISTS `items`;DROP TABLE IF EXISTS `orders`;DROP TABLE IF转载 2017-07-02 20:49:26 · 224 阅读 · 0 评论 -
【MyBatis学习07】动态sql
1. 动态sql 动态sql是mybatis中的一个核心,什么是动态sql?动态sql即对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。就拿上一篇博文中对用户的综合查询一例来说:select * from user where user.sex = #{user.sex} and user.username like '%${user.username}%'11转载 2017-07-02 11:24:07 · 248 阅读 · 0 评论 -
【MyBatis学习06】输入映射和输出映射
在前面几篇博文的例子中也可以看到mybatis中输入映射和输出映射的身影,但是没有系统的总结一下,这篇博客主要对这两个东东做一个总结。我们知道mybatis中输入映射和输出映射可以是基本数据类型、hashmap或者pojo的包装类型,这里主要来总结一下pojo包装类型的使用,因为这个在开发中比较常用。1. 输入映射 输入映射,是在映射文件中通过para转载 2017-07-02 11:22:53 · 199 阅读 · 0 评论 -
【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置文件中都有哪些可以配置的东西:配置内容作用用来加载属性文件用来设置全局参数用来设置类型的别名转载 2017-07-02 11:21:12 · 240 阅读 · 0 评论 -
【MyBatis学习04】mapper代理方法开发dao
上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的步骤。 使用mapper代理的方法来开发dao时,程序员只需要干两件事即可:需要编写mapper.xml映射文件需要编写mapper接口(相当于dao接口) 从做的工作来转载 2017-07-02 11:19:20 · 268 阅读 · 0 评论 -
【MyBatis学习03】原始dao开发方法及其弊端
上一篇博文总结了一下mybatis的入门,接下来就要开发dao方法了,这篇博文主要总结一下mybatis中原始dao开发的方法,最后并总结一下原始dao开发方法的弊端。mybatis中dao开发应该使用mapper代理的方法,这将在下一篇博文中介绍。 原始dao开发思路比较简单,写个dao接口和dao实现类即可。需要向dao实现类中注入sqlSessionFactory,在方法体内通过sq转载 2017-07-02 11:17:01 · 277 阅读 · 0 评论 -
【MyBatis学习02】走进MyBatis的世界
mybatis是个持久层的框架,用来执行数据库操作的,无外乎增删改查,上一节对mybatis有了宏观上的了解后,这一篇博客主要通过一个小示例来入门mybatis,先看一下要写的示例需求:根据用户id查询用户信息 根据用户名称模糊查询用户信息 添加用户、删除用户、更新用户 其实也就是增删改查,掌握这些,基本上就掌握了mybatis的基本操作了,下面一个个模块来完成。转载 2017-07-02 11:15:49 · 197 阅读 · 0 评论 -
【MyBatis学习01】宏观上把握MyBatis框架
今天开始学习mybatis框架,博客主要记录学习过程中的一些总结,如有错误之处,欢迎留言指正~先用mybatis的鸟鸟来镇个楼,咳咳~~ mybatis框架是一个持久层框架,是Apache下的顶级项目。mybatis可以让开发者的主要精力放在sql上,通过mybatis提供的映射方式,自由灵活的生成满足需要的sql语句。MyBatis可以将向preparedStatemen转载 2017-07-02 11:14:37 · 194 阅读 · 0 评论 -
MyBatis分页插件PageHelper的使用
我们知道,在MySQL中,分页的sql是使用limit来做,如果我们自己写sql,那分页肯定是没有任何问题的。但是一旦model多了起来,复杂了起来,我们很自然的想到使用mybatis的逆向工程来生成相应的po和mapper,但是同时也会带来弊端,比如这里的分页问题就不好解决了。 可能有人会说,我可以修改生成的文件,没错,这是可行的,但是一般我们通过逆向工程生成的文件,都不会去动它,所以这转载 2017-07-02 11:06:56 · 865 阅读 · 0 评论 -
Hibernate与MyBatis区别
Hibernate是当前主流的ORM框架,对数据库结构提供了较为完整的封装。MyBatis同样也是非常流行的ORM框架,主要在于pojo与SQL之间的映射关系。区别: 1、两者最大的区别 针对简单逻辑,Hibernate与MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法。 针对高级查询,MyBatis需要手动编写SQL语句,转载 2017-04-29 23:42:46 · 272 阅读 · 0 评论 -
[JSON]2017年最新县及县以上行政区划代码
2017年这篇,是JSON格式,完全通过js实现,这个数据可以方便在三级联动中使用。数据来源地址:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201703/t20170310_1471429.html从该页提供的数据来看,通过缩进实现了层级关系(虽然码值有关联,这里没使用)。将原始数据通过notepad++等工具做基本处理,处理为一个j转载 2017-07-19 21:12:14 · 1193 阅读 · 0 评论