MyBatis
文章平均质量分 75
留兰香丶
但行好事,莫问前程
展开
-
MyBatis逆向工程自动生成代码(附数据库表结构)
一、逆向工程介绍逆向工程是一个专门为MyBatis 框架使用者设计的代码生成器,可以根据数据库中的表字段名,自动生成POJO 类,mapper 接口与SQL 映射文件。支持基本的增删改查功能,以及自定义条件的查询。但是不支持复杂SQL 与存储过程。其使用方法很简单,只需要编写对应的XML 配置文件,并执行相应的代码生成器代码即可。官方文档地址: http://www.mybatis....原创 2018-03-14 22:06:53 · 3788 阅读 · 0 评论 -
浅谈MyBatis二级缓存
一、二级缓存介绍我们知道MyBatis 提供了一级缓存来减轻数据库的压力,但是一级缓存是一个SqlSession(会话)级别的缓存,这也就意味着一级缓存的适用范围比较小。在一级缓存的基础上,MyBatis 提供了二级缓存机制,二级缓存是一个namespace级别的缓存,相对于一级缓存而言,二级缓存允许跨SqlSession工作,因此二级缓存的作用范围更大。有关一级缓存可参考博文: htt...原创 2018-03-14 16:20:01 · 5173 阅读 · 1 评论 -
浅谈MyBatis一级缓存
一、什么是一级缓存每一次在和数据库进行会话的过程中,MyBatis 都会创建一个SqlSession对象。同一次会话期间,只要是查询过的数据,都会保存在当前SqlSession对象的一个Map中。所以在一次会话的过程中,如果我们对一条查询SQL 语句进行了多次执行,经过判断后和之前执行的查询语句相同,并且在缓存中存在该SQL 语句的执行结果,那么这次查询就不会再从数据库中获取数据,而是直接从缓...原创 2018-03-13 20:22:55 · 563 阅读 · 0 评论 -
foreach 实现 MyBatis 遍历集合与批量操作数据
一、写在前面MyBatis 动态 SQL 的一个常用的操作需求是对一个集合进行遍历,通常是在构建 IN 条件语句的时候。foreach允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。foreach 是动态SQL 中一个非常强大的标签。下面就来体验一下foreach 标签带来的便捷之处,有关批量操作的实现,这里以批量插入数据为例。二、foreach遍历...原创 2018-03-13 12:54:33 · 38302 阅读 · 1 评论 -
association 实现MyBatis分步查询与延迟加载
一、分布查询1.1什么时候可以用到分布查询有的时候需要我们对数据库进行关联查询,比如Employee 持有另一个Department对象的一个引用,我们希望在查询Employee 的时候把Department也一同查询出来。这时候我们可以编写关联表的SQL 语句,从而将查询出来的数据使用resultMap进行映射。我们也可以使用其他的方式将关联的信息查询出来,MyBatis 提供了分布...原创 2018-03-12 21:53:38 · 1114 阅读 · 3 评论 -
MyBatis使用resultMap自定义映射规则与关联映射
一、写在前面在MyBatis 的全局配置文件中我们可以通过在settings标签中设置 <setting name="mapUnderscoreToCamelCase" value="true"/>来开启驼峰命名法,实现数据库中的字段名与JavaBean 中属性的关系映射。在数据库中一般使用单词来定义列名,多个列名之间用’ _ ‘分隔开,比如department_name,在...原创 2018-03-12 16:39:10 · 2864 阅读 · 0 评论 -
MyBatis查询结果resultType返回值类型详细介绍
一、返回一般数据类型比如要根据id 属性获得数据库中的某个字段值。mapper 接口: // 根据id 获得数据库中的username 字段的值 String getEmpNameById(Integer id);SQL 映射文件: <!-- 指定resultType 返回值类型时String 类型的, str...原创 2018-03-12 08:56:41 · 365284 阅读 · 27 评论 -
MyBatis处理多参数及原理分析
一、多参数处理方式1.1使用@Param注解MyBatis 允许在mapper 接口中使用@Param注解来处理多个参数。mapper 接口: /** @Param 注解中的值可以是任意的 */ Employee getEmpByIdAndUsername(@Param("id") Integer id, @Param("username") String use...原创 2018-03-11 17:06:32 · 2153 阅读 · 1 评论 -
MyBatis 获取数据库中自增主键值
一、在SQL 映射文件的select标签中添加useGeneratedKeys="true"属性与keyProperty=" "属性,keyProperty的值表示的是将获取到的自增主键值赋给JavaBean 中的某个字段。 <!-- useGeneratedKeys 设置为true keyProperty 表示把获得的自增主键原创 2018-03-11 09:47:07 · 8987 阅读 · 1 评论 -
MyBatis全局配置文件介绍
一、propertiesproperties标签可以用于引入外部的配置文件,也可以用于定义全局变量。 比如我们在配置数据源的时候习惯把相关的信息单独的放在一个配置文件中,方便修改。数据库配置信息dbconfig.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/myba...原创 2018-03-10 20:26:03 · 332 阅读 · 0 评论 -
MyBatis运行原理(三)接口式编程及创建代理对象原理分析
一、面向接口开发步骤定义代理接口,将操作数据库的方法定义在代理接口中。在SQL 映射文件中编写SQL 语句。将SQL 映射文件注册在MyBatis 的全局配置文件中。编写测试代码。二、环境准备数据库表结构:DROP TABLE IF EXISTS `t_employee`;CREATE TABLE `t_employee` ( `id` int(11) NOT ...原创 2018-03-10 14:22:43 · 1095 阅读 · 0 评论 -
MyBtis快速入门
一、MyBatis介绍1.1简单介绍MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。MyBatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis避免了几乎所有的 JDBC ...原创 2018-03-10 08:42:33 · 1815 阅读 · 0 评论 -
MyBatis运行原理(二)SqlSession对象创建过程分析
PS:这篇博文承接上一篇: MyBatis运行原理(一)SqlSessionFactory对象创建过程分析在上一篇博文中分析了SqlSessionFactory对象创建的过程,有了SqlSessionFactory对象工厂就可以创建SqlSession了,下面就来具体分析一下SqlSession对象创建的过程。一、SqlSession对象创建过程分析入口程序: priv...原创 2018-03-16 09:26:55 · 934 阅读 · 0 评论 -
MyBatis运行原理(一)SqlSessionFactory对象创建过程分析
一、写在前面MyBatis基于接口形式的编程主要步骤:1.创建SqlSessionFactory对象。2.根据SqlSessionFactory对象获取SqlSession对象。3.为mapper 接口创建代理对象。4.使用mapper 接口代理对象执行对应的增删改查操作。下面就通过分析源码来探索在创建SqlSessionFactory对象的过程中都发生了什么。二、Sq...原创 2018-03-15 21:03:30 · 1366 阅读 · 0 评论 -
MyBatis Plus 入门使用
一、MyBatis Plus 介绍MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis Plus 的核心功能有:支持通用的 CRUD、代码生成器与条件构造器。通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper<T> 接口即可获得通用的增删改查...原创 2018-07-15 18:08:49 · 50448 阅读 · 4 评论