mybatis缓存学习笔记】的更多相关文章

mybatis有两级缓存机制,一级缓存默认开启,可以在手动关闭:二级缓存默认关闭,可以手动开启.一级缓存为线程内缓存,二级缓存为线程间缓存. 一提缓存,必是查询.缓存的作用就是查询快.写操作只能使得缓存失效,不管是一级缓存还是二级缓存,一旦发生写操作,缓存就要清空一次. 缓存是把双刃剑,用得好比较难,用不好就把自己伤着了. Perpetual这个单词,意为“永恒”.PerpetualCache表示永不过期的缓存.mybatis的两级缓存都是默认为PerpetualCahe,一级缓存的缓冲机制不能…
MyBatis:学习笔记(4)——动态SQL 如果使用JDBC或者其他框架,很多时候需要你根据需求手动拼装SQL语句,这是一件非常麻烦的事情.MyBatis提供了对SQL语句动态的组装能力,而且他只有几个基本的元素,十分简单明了,即大量的判断都可以在MyBatis的映射XML文件里面配置,已达到我们需要大量代码才可以实现的功能. 动态SQL元素 IF元素 IF元素是我们最常用的判断语句,相当于Java中的IF语句.它常常与test属性联合使用. <select id="findOffice…
MyBatis 3 一.MyBatis简介 优秀的持久层框架,支持支持自定义 SQL.存储过程以及高级映射,专注于SQL的编写. ​ 为什么不使用工具类进行数据库操作: ​ 功能简单,sql语句编写在Java代码里面,是一种硬编码高耦合的方式,不推荐. Hibernate: ​ 另一种持久层框架,全自动全映射ORM(Object Relation Mapping)框架,旨在消除SQL. ​ 主要特点:一个JavaBean对象与数据库中一条记录建立映射,中间过程对于程序员来讲是黑箱操作,无须关注S…
前几天学习了mybatis,今天来复习一下它的内容. mybatis是一个基于Java的持久层框架,那就涉及到数据库的操作.首先来提出第一个问题:java有jdbc连接数据库,我们为什么还要使用框架呢?要回答这个问题,首先来看一下jdbc是怎样编程的. private static String sql = "SELECT * FROM USER WHERE username = ?"; public static void main(String[] args) throws SQL…
配置文件 贴出mybatis的配置文件,这里mybatis还未与spring做整合: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <c…
0.redis和memcache的区别 a.redis可以存储除了string之外的对象,如list,hash等 b.服务器宕机以后,redis会把内存的数据持久化到磁盘上,而memcache则不会 1.linux下redis安装 a.rz redis.gz.tar b.tar解压 c.make编译 d../redis-server &  服务端启动 e.redis-cli 客户端启动 1)notice:注意默认启动 redis-server redis.conf 会报错 , 原因参考redis…
一.MyBatis和jdbc的区别 jdbc的过程包括: 1.加载数据库驱动. 2.建立数据库连接. 3.编写sql语句. 4.获取Statement:(Statement.PrepareStatement.callableStatement). 5.执行executionQuery. 6.获取ResultSet结果集. 7.处理ResultSet结果集. 6.关闭资源:rs,Statement,conn. MyBatis工作流程 1.加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方…
转的地址:http://hunankeda110.iteye.com/blog/1897961 1 //设置图片在下载期间显示的图片 2 showStubImage(R.drawable.ic_launcher) 3 4 //设置图片Uri为空或是错误的时候显示的图片 5 showImageForEmptyUri(R.drawable.ic_empty) 6 7 //设置图片加载/解码过程中错误时候显示的图片 8 showImageOnFail(R.drawable.ic_error) 9 10…
增删改之前先说一下笔记1里提到的一个无法创建ISqlMapper对象的问题. <resultMaps> <resultMap id="FullResultMap" class="TUSER"> <result property="UID" column="U_ID" dbType="Int"/> <result property="UName"…
1.MyBatis是什么? MyBatis源自于IBatis,是一个持久层框架,封装了jdbc操作数据库的过程,使得开发者只用关心sql语句,无需关心驱动加载.连接,创建statement,手动设置参数,结果集检索等jdbc底层操作. Mybatis通过xml或注解的方式将要执行的各种statement(statement.preparedStatemnt.CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由myb…
1.原始方法开发Dao Dao接口 package cn.sm1234.dao; import java.util.List; import cn.sm1234.domain.Customer; public interface CustomerDao { public void saveCustomer(Customer customer); public void updateCustomer(Customer customer); public void deleteCustomer(In…
一.什么是MyBatis? Mybatis是一种“半自动化”的ORM实现,支持定制化 SQL.存储过程以及高级映射. 二.hibernate和mybatis对比 共同:采用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,完成对数据库的持久化操作. 区别:Hibernate是全自动化ORM的映射工具,底层已经封装好,可以不用写sql语句.Mybatis是一种“半自动化”的ORM实现,支持定制化 SQL 三.配置文件讲解 mybatis配置文件mybatis.cfg.xml <?xml…
第7讲 事务 7.1 事务的概念 事务是一系列作为一个逻辑单元来执行的操作集合. 它是数据库维护数据一致性的单位,它讲数据库从一个一致状态,转变为新的另外一个一致状态.说的简单一点就是:如果一组处理步骤要么全部成功,要么全部失败,这样就保证了数据始终一致的状态. 维护了数据的完整和可靠性. 7.2 jdbc处理事务的逻辑 7.3 事务的属性 事务的4个属性:原子性.一致性.隔离性.持续性.这四个属性通常称为ACID特性. 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括…
1.框架的概念 框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统.简单说就是使用别人搭好的舞台,你来做表演.而且,框架一般是成熟的,不断升级的软件.框架是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题. 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能,大大提高开发效率. 2.三层架构 表现层:是用于展示数据的 业务层:是处理业务需求 持久层:是和数据库交互的 3.持久层技术解决方案 (1)JDBC技术: Connection Prepa…
说明:本系列随笔会与CSDN同步发布,当然这里先发,因为这里可以用WLW.但刚才由于误操作,没有重新发上来.只好先在CSDN先发了.重往这里发时图片无法处理,索性直接粘过来吧! 使用框架后一些相关的配置如果手写起来会累死,且没有必要,技术就是用来提升工作效率的(至少我是这么认为的).实体类及配置基本上大同小 异,CTRL+C.CTRL+V 当然也可以实现,但那也不像做技术出身的风格.以前用动软的生成PETSHOP的代码.据说这个CodeSmtih挺强.就拿来用的.感觉定制性挺强,但 使用习惯什么…
一,首先要清楚,SpringMVC其实就是Spring的一个组件       例如我们知道Spring中有类似于,AOP TX等等类似的组件,所以SpringMVC其实就是Spring的一个组件,是Spring框架的一部分,千万不要把SpringMVC当成是另一种框架!       所以在配置上,还是按照配置Spring的套路来,该配置监听,配置监听,该配置配置文件,配置配置文件,一切照旧 二,Spring在Web.xml中的配置       在Web.xml中配置Spring大致可以分为两点…
一个客户拥有多个订单 <resultMap type="User" id="UserOrderResultMap"> <id column="id" property="id"/> <result column="name" property="name"/> <!-- 如何体现出User中封装的订单呢?需要用到collection标签 --&g…
用户和订单的需求 通过查询订单,查询用户,就是一对一查询 (1)自定义JavaBean(常用,推荐使用) <select id="queryOrderUser" resultType="OrderUser"> SELECT o.id,o.user_id,u.name,o.productname FROM t_order o LEFT JOIN t_user u ON o.user_id= u.id </select> OrderUser.ja…
1.if标签 <select id="queryByNameAndTelephone" parameterType="Customer" resultType="Customer"> SELECT * FROM t_customer WHERE 1=1 <if test="name!=null and name!=''"> AND NAME LIKE #{name} </if> <if…
输出映射(例如一个方法的返回至使用什么类型去接收) 1.基本类型 <!-- 统计记录数 --> <select id="queryTotalCount" resultType="long"> SELECT COUNT(*) FROM t_customer </select> public Long queryTotalCount(); /** * 输出映射 */ @Test public void test2() { SqlSes…
1.输入映射 输入映射支持的类型: 1) 基本的类型,int,String,double 等(*)2) JavaBean 类型(*)3) 包装JavaBean 类型(对象里面包含另一个对象) 1.1基本类型 <insert id="testParameterType" parameterType="String"> INSERT INTO t_customer(NAME) VALUES(#{name}) </insert> #{name}也可…
1.定义别名 在sqlMapConfig.xml中,编写如下代码: <!-- 定义别名 --> <typeAliases> <!-- type: 需要映射的类型 alias: 别名 --> <typeAlias type="cn.sm1234.domain.Customer" alias="customer"/> </typeAliases> 在Customer.xml中使用, <!-- 添加 --&…
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念,是把我们程序中的类与类之间的依赖关系交给容器去处理,一般有两种方式(面试): 依赖查找DL(dependency lookup):程序提供查找方式,交给容器去查找(相当于se中的回调函数): 依赖注入DI(dependency injection):程序不提供查找方式,提供合适的构造方法或者set…
mybatis学习笔记(14)-查询缓存之中的一个级缓存 标签: mybatis mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 本文主要讲mybatis的一级缓存.一级缓存是SqlSession级别的缓存. 查询缓存 mybatis提供查询缓存.用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在操作数据库时须要构造sqlSession对象,在对象中有一…
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4270403.html 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空. 2. 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualC…
简介 什么是缓存 **将一次查询的结果暂存至内存,后续查询只需查询缓存** 为什么使用缓存 **减少与数据库的交互次数,减少系统开销,提高系统效率** 什么样的数据能使用缓存 **经常查询且不常修改的数据** Mybatis缓存 一级缓存 也叫本地缓存,默认开启,无法关闭,只在一次SqlSession中有效(拿到连接->关闭连接),底层由[Map]实现数据存储 与数据库同一次会话期间查询到的数据会放在本地缓存中 若之后需要获取相同数据,直接从缓存中获取 <select id="que…
mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql语句 mybatis可将向prparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象.(输出映射) SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定) 配置了数据源/事务等mybatis运行环境 配置映射文件(配置sql语句) m…
mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发方法 mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射 mybatis输出映射 mybatis的动态sql 2.高级知识 高级结果集映射(一对一/一对多/多对多) mybatis查询缓存(一级缓存/二级缓存) mybatis和spring进行整合…
博客整理 Mybatis学习笔记(一)--对原生jdbc中问题的总结 Mybatis学习笔记(二)--Mybatis框架 Mybatis学习笔记(三)--入门程序 MyBatis学习笔记(四)--入门程序(续) Mybatis学习笔记(五)--DAO开发 Mybatis学习笔记(六)--配置文件 Mybatis学习笔记(七)--输入输出映射 Mybatis学习笔记(八)--动态SQL Mybatis学习笔记(九)--一对一和一对多查询 Mybatis学习笔记(十)--多对多查询 Mybatis学…
Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师[手动狗头],大家可自行前去学习. 导航栏 Mybatis学习笔记-第一个Mybatis程序 Mybatis学习笔记-CRUD Mybatis学习笔记-配置解析 Mybatis学习笔记-ResultMap结果集映射 Mybatis学习笔记-日志 Mybatis学习笔记-分页 Mybatis学习笔记-…