mybatis-03】的更多相关文章

ResultMap 在实际的开发中,数据库不总是我们希望看到的样子.比如我们希望User的主键是id但是数据库偏偏喜欢叫它u_id,这样一来原先的resultType似乎就失效了,不带这么玩的,整个人都不好了. 于是mybatis给出了他的方案——resultMap.把我们从复杂的命名问题中解救出来--- 在上一篇中已经用mybatis generator生成好了一个BlogMapper.xml.现在让我们分析下这个文件. <?xml version="1.0" encoding…
简介 什么是缓存 存在内存中的临时数据. 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,转从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. 为什么使用缓存 减少和数据库的交互次数,减少系统开销,提高系统效率. 什么样的数据适合使用缓存 经常查询并且不经常改变的数据. Mybatis缓存 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存. MyBatis 系统中默认定义了两级缓存:一级缓存和二级缓存 默认…
1.动态sql 01.if:单独使用if,后面必须有where 1=1 代码:<!-- 需要注意的事项:01. 在xml文件中 特殊字符的使用 &&必须换成 and或者 & < < > > <= <= >= >= ' &apos;" " 02.因为不确定用户输入的到底是哪个参数 所以 where 之后必须加上 1=1 而且 每个条件之前加上 and --><select id="…
title: Mybatis学习03 date: 2020-01-19 13:03:20 tags: Mybatis学习的第二天,内容有日志和分页. <!--more--> 1.日志 1.日志的设置 在mybatis核心配置文件中设置,在<settings></settings>标签中使用<setting></setting>来配置. Mybatis内置了多个日志,有: SLF4J LOG4J (常用) LOG4J2 JDK_LOGGING CO…
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:手撸一万行! 完结撒花:4个月.20章.134个类.1.03万行代码! 22年3月初,小傅哥开始准备着<手写Mybatis>的相关资料,这也是继<手写Spring>后的又一项较大的成体系的内容输出. 从准备之初我则希望这份<手写Mybatis>要以源码框架为根基,实现逻辑为指引.不应该通过降低实现难度,仅仅用几个类把 ORM 逻辑串联出来.因为不贴近 My…
参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得.而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configu…
SSM+redis整合 ssm框架之前已经搭建过了,这里不再做代码复制工作. 这里主要是利用redis去做mybatis的二级缓存,mybaits映射文件中所有的select都会刷新已有缓存,如果不存在就会新建缓存,所有的insert,update操作都会更新缓存. redis的好处也显而易见,可以使系统的数据访问性能更高.本节只是展示了整合方法和效果,后面会补齐redis集群.负载均衡和session共享的文章. 下面就开始整合工作: 后台首先启动redis-server(后台启动与远程连接l…
springboot+mybatis+缓存,基本的用法想必是会了,现在说一说内部大概的原理. 稍微提一下mybatis,只要导入了mybatis的依赖,那么有个自动配置类就会生效,你可以去mybatis的jar包里面的META-INF/spring.factories中看到这个xxxAutoConfiguration,就如下图所示,这个应该很熟悉了,所以我们要看看mybatis的配置,肯定要看这个类. 开这个类,看到这里 看了看,其他的没什么说的,要看看在yml给mybatis可以配置哪些参数,…
0.写在前面的话 一直想能仿公司框架的形式,着手做一个简单的脚手架,一来是带着目标性能更好地学习,接触新的技术,另外自己如果有什么想要实现的简单需求,就可以进行快速开发,主要还是希望能在权限上有所控制,所以最花时间的还是在Shiro上. 其实目标在github已经有不少大佬的参考物了: zheng  基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块 ES  JavaEE企业级项目的快速开发的脚手架,提供了底层抽象和通用功能,拿来即用 renr…
第5章--MyBatis MyBatis入门 Abstract: 数据库框架的工作原理和使用方法(以MyBatis为例) 面向对象的世界与关系型数据库的鸿沟: 面向对象世界中的数据是对象: 关系型数据库中的数据是以行.列表示的二元表. 什么映射技术能实现对象和二元表之间的自动转换呢? --ORM (Object Relation Mapping) 持久化类与数据库表之间的映射关系:对持久化对象的操作自动转换成对关系数据库操作. 关系数据库的每一行映射为每一个对象:关系数据库的每一列映射为对象的一…
上一篇博文总结了一下mybatis的入门,接下来就要开发dao方法了,这篇博文主要总结一下mybatis中原始dao开发的方法,最后并总结一下原始dao开发方法的弊端.mybatis中dao开发应该使用mapper代理的方法,这将在下一篇博文中介绍.  原始dao开发思路比较简单,写个dao接口和dao实现类即可.需要向dao实现类中注入sqlSessionFactory,在方法体内通过sqlSessionFactory创建sqlSession.为什么在方法体内创建呢?因为mybatis中sql…
1.框架的概念 框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统.简单说就是使用别人搭好的舞台,你来做表演.而且,框架一般是成熟的,不断升级的软件.框架是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题. 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能,大大提高开发效率. 2.三层架构 表现层:是用于展示数据的 业务层:是处理业务需求 持久层:是和数据库交互的 3.持久层技术解决方案 (1)JDBC技术: Connection Prepa…
深入Mapper XML映射文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码.MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好. SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):select – 映射查询语句insert – 映射插入语句update – 映射更新语句delete – 映射删除语句s…
SqlMapConfig.xml中配置的内容和顺序如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) environment(环境子属性对象) transactionManager(事务管理) dataSource(数据源) mappers(映射器) ---------------------…
mybatis框架:共四天 明确:我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式.不管使用XML还是注解配置. 第二天:mybatis基本使用 mybatis的单表crud操作 mybatis的参数和返回值 mybatis的dao编写 mybatis配置的细节     几个标签的使用 持久层总图 Mybatis第二天讲义:  第3章 Mybatis 的参数深入 3.2 传递 pojo 包装对象 开发中通过 pojo 传递查询条件 ,查询条件是综合的查询条件,不仅包括用户查询…
mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 ---------------------------------------------------------------------------------------- 1.什么是框架? 它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题. 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能.大大提高开发效率.2.三层架构 表现层…
1.XML映射器 2.select Select元素来定义查询操作 Id:唯一标识符 - 用来引用这条语句,需要和接口的方法名一致 parameterType:参数类型 - 可以不传,MyBatis会根据TypeHandler自动推断 resultType:返回值类型 - 别名或者全类名,如果返回的是集合,定义集合中元素的类型.不能和resultMap同时使用 1)返回List public List<Employee> getEmpsByLastNameLike(String lastNam…
日志 1.为什么要使用日志 使用日志能对项目: 调试:日志便于记录程序在之前的运行结果 错误定位 数据分析:日志中蕴含了大量的用户数据,包括点击行为,兴趣偏好等,对公司下一步的战略方向有一定指引作用. Mybatis内置的日志工厂提供日志功能,具体如下: SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging 日志实现由Mybatis内置日志工厂确定,由上到下的顺序查找和使用,如果一个都未找到则日志功能就会被禁用. 2.标准日志实现 指定My…
从上文:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02 当每次进行刷新时,都会从数据库重新查询数据进行授权操作,这样无疑给数据库造成很大的压力,所以需要引入缓存机制,解决频繁访问数据库的压力 使用Shiro默认的EhCache缓存进行优化 1.导入依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</art…
本节应用Spring对RESTful的支持,使用了如@RestController等注解实现RESTful控制器. 如果对Spring中的RESTful不太明白,请查看相关书籍 1.创建一个数据对象,用来统一RESTful API的返回格式 package com.ltsolution.framework.common.msgmodel; import java.util.HashMap; import java.util.Map; public class AppResult { privat…
如上图所示,mybatis默认支持7种日志记录的方式,也可以自己实现Log接口,然后将实现类通过LogFactory注入到日志工厂中. LogFactory是日志模块的入口,外层通过getLog获取Log对象,然后调用Log接口方法进行日志的记录,代码示例: private static final Log log = LogFactory.getLog(BaseExecutor.class); ... @Override public void close(boolean forceRollb…
Spring+springmvc+Mybatis整合案例 Version:annotation版 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xm…
Spring+springmvc+Mybatis整合案例 Version:xml版(myeclipse) 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.co…
接上一篇博文,这一篇来讲述怎么实现SchemaSqlMapperParserDelegate——解析SqlMapper配置文件. 要想实现SqlMapper文件的解析,还需要仔细分析一下mybatis的源码,我画了一个图来协助理解,也可以帮助形成一个整体概念:…
前言 最近比较闲,复习搭建一下项目,这次主要使用spring+SpringMVC+Mybatis.项目持久层使用Mybatis3,控制层使用SpringMVC4.1,使用Spring4.1管理控制器,数据库连接池使用druid数据源,该项数据库暂使用MySQL.(如果是Oracle需修改pom.xml) <!-- oracle连接 -->    <dependency>      <groupId>com.hynnet</groupId>      <…
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <…
第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] 1)参见<<一对一图示.JPG>> 2)创建students.sql和cards.sql drop table students; drop table cards; create table cards( id    int(5)      primary key, num varc…
1.配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h…
一.建立表 1.1.建立表,并插入数据 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.6.27-log : Database - mybatis ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE…