
Mybatis
修炼中的菜鸟
这个作者很懒,什么都没留下…
展开
-
mybatis配置一三
一: ObjectFactory 当mybatis在构建一个结果返回的时候,都会使用ObjectFactory(对象工厂)去构建POJO,在mybatis中可以定制自己的对象工厂。一般来说我们使用默认的ObjectFactory即可,mybatis默认的ObjectFactory是由org.apache.ibatis.reflection.factory.DefaultObjectF原创 2017-05-23 22:07:45 · 981 阅读 · 0 评论 -
mycati缓存cache
缓存 缓存是系统常用的,其特点是保存数据到内存中。目前流行的缓存服务有MongoDB,Redis,Ehcache等。缓存是在计算机内存上保存的数据,在读取的时候无需从磁盘读入,因此具备快速读取和使用的特点,如果缓存命中高,那么就可以极大的提高系统的性能。如果缓存命中很低,那么缓存就不存在使用的意义了,所以使用缓存的关键在于存储内如访问的命中率。一:系统缓存(一级缓存和二级缓存)原创 2017-06-17 18:32:25 · 2790 阅读 · 0 评论 -
mybatis-动态sql-if,choose,when,otherwis,trim,where,set,foreach,test,bind
如果使用JDBC或者其他框架,很多时候你得根据需要去拼装sql,这是一个麻烦的事情。而mybatis提供对sql语句动态的组装能力,而且它只有几个基本的元素,十分简单明了,大量的判断都可以在mybatis的映射xml文件里面配置,以达到许多我们需要大量代码才能实现的功能,大大减少了我们的编程工作量,这体现了mybatis的灵活性,高度可配置和可维护性。mybatis也可以在注解中配置sql,但是注原创 2017-06-17 22:14:50 · 3827 阅读 · 0 评论 -
mysql读写分离-mysql proxy实现
这篇使用apache的mysql proxy原创 2017-06-02 17:13:12 · 959 阅读 · 0 评论 -
mysql-使用mycat实现简单的读写分离
4.3.1Mycat下载http://www.mycat.io/是Mycat的官方网站,到这个网站可以进行Mycat的下载,在官网还可以下载《Mycat权威指南》pdf的电子档,下载Mycat的源码。目前最新稳定的Mycat版本是Mycat1.6, Mycat有window,linux,unix,mac平台对应的版本,我这里也使用下载的是window下的1.6版本来实现读写分离。4原创 2017-06-20 17:01:10 · 8180 阅读 · 1 评论 -
linux平常的常用命令
平常经常使用linux进行开发,软件安装,环境部署等,会用到一些常用的命令,下面是我平时使用到linux下的常用命令: type command 查看一条命令是外部命令还是内部命令[root@upl test]# type cdcd is a shell builtincd 是内部命令[root@upl test]# type mountmount is原创 2017-06-20 18:14:22 · 2039 阅读 · 0 评论 -
haproxy+mycat搭建高可用数据库
在http://blog.youkuaiyun.com/j903829182/article/details/72844954介绍了主从复制, 在http://blog.youkuaiyun.com/j903829182/article/details/73500080介绍了基于mycat的读写分离这篇博客就是需要基于前面两篇博客的基础上进行的,使用haproxy+myca原创 2017-06-20 17:57:58 · 4325 阅读 · 0 评论 -
mybatis-映射器-resultMap结果集映射1
resultMap是mybatis里面最复杂的元素。它的作用是定义映射规则,级联的更新,定制类型转换器等。resultMap定义的主要是一个结果集的映射关系。mybatis现有的版本只支持resultMap查询,不支持更新或者保存,更不必说级联的更新,删除和修改了。 一:resultMap元素的构成 resultMap元素里面还有以下元素,代码如下:原创 2017-06-13 22:10:34 · 905 阅读 · 0 评论 -
mybatis-映射器-resultMap结果集映射2-association一对一级联
在实际操作中,我们需要确定对象的关系。这里以前面的学生信息级联为例,在学校里面学生Student和学生证StudentCard是一对一的关系,前面已经建立了Student和StudentCard的pojo对象。那么在Student的pojo添加一个属性studentCard,那么这样就建立了一对一的级联了。现在Student类的代码如下: package org.mybatis.pojo原创 2017-06-14 00:00:12 · 716 阅读 · 0 评论 -
mysql5.7.18免安装版的配置安装
mysql最新版本已经到了5.7了,下面是在win10环境下,安装配置mysql的步骤:一:下载mysql 下载地址:https://dev.mysql.com/downloads/把下载好的mysql安装包解压到指定的目录 我下载的是mysql-5.7.18-winx64.zip,解压目录为D:\programing\mysql-5.7.18-winx64原创 2017-07-18 18:29:43 · 1919 阅读 · 0 评论 -
mybatis的解析和运行原理1
如果只是学会mybatis的使用,那么在之前的博客中对mybatis一些基本的使用已经做了比较详细的说明了。但是在开发中,对于很多东西我们需要知道原理,才能对源码进行修改,写出更好的代码,对mybatis理解的更加深入,做到知其然并知其所以然。之前的博客:http://blog.youkuaiyun.com/j903829182/article/details/73382280 接下来是对myba原创 2017-12-18 21:18:38 · 682 阅读 · 0 评论 -
mybatis的解析和运行原理2-SqlSession的运行过程
SqlSession的运行过程是mybatis的重点和难点,也是整个mybatis比较难以理解的部分。SqlSession是一个接口,使用它并不复杂。我们构建SqlSessionFactory就可以轻易地拿到SqlSession了。SqlSession给出了查询,插入,更新,删除的方法,在旧版的mybatis或ibatis中常常使用这些接口方法,而在新版本的mybatis中建议使用Mapper,所原创 2017-12-23 22:02:23 · 1035 阅读 · 0 评论 -
mybatis插件
前面讨论了四大对象的运行过程,在Configuration对象的创建方法里我们看到了mybatis用责任链去封装它们。换句话说,我们有机会在四大对象调度的时候插入我们的的代码去执行一些特殊的要求以满足特殊的场景需求,这便是mybati的插件技术。 在没能完全理解mybatis的原理和插件的时候,使用插件是十分危险的。使用插件就意味着mybatis底层封装,它给予我们灵活性的同时,也给原创 2017-12-24 10:37:14 · 1966 阅读 · 0 评论 -
mybatis-映射器-级联性能分析
一:性能分析N+1问题 级联的优势就是能够方便快捷的获取数据。比如学生和学生成绩信息往往是最常用的级联信息,这个时候级联完全是有必要的,级联最好不要超过三层,多层级联会导致复杂性的增加,不利于理解和维护。同时级联也存在严重的问题,例如我只对学生课程和成绩感兴趣,就不用取出学生证和健康情况表了。因为取出学生证和健康表不但没有意义而且还会多执行sql,导致性能下降。 级联还原创 2017-06-17 10:56:17 · 1307 阅读 · 0 评论 -
mybatis-映射器-resultMap结果集映射3collection一对多级联&鉴别器
一个学生可能有多门课程,在学生确定的前提下每门课程都会有自己的分数,所以一个学生的课程成绩只能对应一门课程。所以这里有两个级联,一个是学生和课程成绩的级联,这是一对多的关系;一个是课程成绩和课程的级联,这是一对一的关系。一对一的级联我们使用association,而一对多的级联我们使用的是collection。原创 2017-06-17 09:55:10 · 6622 阅读 · 4 评论 -
mybatis配置一四引入映射器的方法
映射器是mybatis最复杂,最核心的组件,这篇主要讲解怎么引入映射器。 在前面写过映射器定义命名空间的方法,命名空间对应的是一个接口的全路径,而不是实现类,比如下面定义的一个接口: package org.mybatis.mapper;import java.util.List;import org.mybatis.pojo.Role;//接口public i原创 2017-05-23 22:27:04 · 1130 阅读 · 0 评论 -
JDBC和hibernate,mybatis的比较
mybatis,jdbc,hibernate的比较,优缺点原创 2017-05-13 08:54:08 · 5667 阅读 · 0 评论 -
Mybatis入门一
学习编程是一门动手的过程,只有一边学习一边写代码才有效果,同时把自己学习的笔记和心得记录下来。学习Mybatis那么开始我们先从搭建Mybatis的环境开始。一 下载Mybatis 输入网址:https://github.com/mybatis/mybatis-3/releases,进入到Mybatis的官网,我们就可以下载Mybatis,如下图所示: 我们下载原创 2017-05-14 00:15:36 · 547 阅读 · 0 评论 -
Mybatis入门二一映射器
映射器是由java接口和xml文件或者注解共同组成的,它的作用如下: 1)定义参数类型;2)描述缓存;3)描述sql语句;4)定义查询结果和pojo的映射关系原创 2017-05-14 10:34:36 · 538 阅读 · 0 评论 -
mybatis组件的生命周期
在web应用中如果不了解mybatis组件的生命周期可能带来很严重的并发问题,下面总结下SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession和Mapper的生命周期。 一:SqlSessionFactoryBuilder原创 2017-05-14 20:15:19 · 2097 阅读 · 0 评论 -
mybatis--映射器
映射器是mybatis最强大的的工具,也是我们使用mybatis时用得最多的工具,因此熟练掌握它十分必要。mybatis是针对映射器构造的sql构建的轻量级框架,并且通过配置生成对应的javabean返回给调用者,而这些配置主要便是映射器,在mybatis中你可以根据情况动态定义sql来满足不同场景的需要,它比其他框架灵活多了。mybatis还支持自动绑定javabean,我们只要让sql返回的字原创 2017-05-24 23:18:49 · 547 阅读 · 0 评论 -
mybatis-映射器-select
select元素是我们最常用也是功能最强大的sql语言。select元素帮助我们从数据库中读取出数据,组装数据给业务人员。执行select语句之前,我们需要定义参数,它可以是一个简单的参数类型,例如int,float,String,也可以是一个复杂的参数类型,例如JavaBean,Map等,这些都是mybatis接受的参数类型。执行sql后,mybatis也提供了强大的映射规则,甚至自动映射来帮助原创 2017-05-28 02:34:42 · 2461 阅读 · 0 评论 -
mybatis的配置一
前面学习了mybatis的组成和基本的用法,下面学习下mybatis的配置。mybatis的配置文件对整个mybatis体系结构产生深远的影响,需要认真学习下,下面看看mybatis的层次结构。注意这些层次结构是不能够颠倒顺序的,如果颠倒了顺序,mybatis在解析xml文件的时候就会出现异常,mybatis的层次结构如下所示:原创 2017-05-17 22:14:36 · 760 阅读 · 0 评论 -
mybatis-映射器-insert元素,update,delete元素
insert元素,相对于select元素来说,简单了许多。mybatis会在执行插入之后返回一个整数,以表示你进行操作后插入的记录数。insert元素配置详解,如下: id:它和Mapper的命名空间组合起来是唯一的,作为唯一标识提供给mybatis调用,如果不唯一mybatis将会抛出异常。原创 2017-05-28 23:48:57 · 1462 阅读 · 0 评论 -
mybatis-映射器-参数,sql元素
mybatis在实际使用中参数大部分还是比较简单的,但是我们还是有必要讨论下参数的使用。我们可以通过制定参数的类型去让对应的typeHandler处理它们,具体的可以参考之前typeHandler的用法。通过指定对应的JdbcType,JavaType我们可以使用哪个typeHandler去处理参数,或者制定一些特殊的东西,但是我们需要主要:定制参数属性的时候,mybatis不允许换行。原创 2017-05-30 20:25:15 · 827 阅读 · 0 评论 -
mysql主从复制
Mysql主从复制 Mysql可以在window和linux平台进行使用,这里使用linux的作为mysql的系统环境,实现mysql的主从复制,使用虚拟机安装centos7的linux环境,mysql版本使用5.6。一:环境准备 虚拟机安装centos7可以参考:http://www.centoscn.com/image-text/setup/2014/0723/3原创 2017-06-02 15:54:06 · 1801 阅读 · 0 评论 -
mybatis的配置二
一 typeHandler类型处理器 Mybatis在预处理语句(PreparedStatement)中设置一个参数时,或者从结果集ResultSet中取出一个值时,都会用到注册了的typeHandler进行处理。 由于数据库可能来自不同的厂商,不同的厂商设置的参数可能有所不同,同时数据库也可以自定义数据类型,typeHandler允许根据项目的需要自定义设置java传原创 2017-05-21 15:52:20 · 531 阅读 · 0 评论 -
mybatis-spring1
下面开始学习mybatis和spring的整合,需要了解spring的ioc和aop的知识,之前的博客有介绍。spring框架已经成为java世界最为流行的ioc和aop框架。通过spring框架我们可以使用ioc的依赖注入,即插即拨功能;通过aop框架,数据事务可以委托给spring处理,消除掉很大一部分的事务代码。mybatis-spring使得业务层和模型层得到了更好的分离。mybati和s原创 2017-12-26 21:23:39 · 485 阅读 · 0 评论