
mybatis
yinni11
这个作者很懒,什么都没留下…
展开
-
mybatis入门
初识mybatis 今天,一起来说说mybits这个框架吧。这是一个持久层的框架。之前叫做ibatis。所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶。不是写错了,它确实就是这个样子的。 mybatis是什么 首先,我们来看看mybatis是个什么东东,它有什么用?我们为什么要学习它。mybatis是一个持久层的框架。所谓...转载 2018-04-08 22:35:16 · 118 阅读 · 0 评论 -
mybatis入门-动态sql
mybatis入门-动态sql 什么是动态sql 判断的动态sql mybatis核心就是对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。 现有需求如下:需要查询用户,输入的是用户类,如果用户的性别类不为空,则将性别作为查询条件之一,如果用户的姓名不为空,则将用户姓名作为查询条件之一。如果用户两个属性都为空,则查询所有用户。 我们知道,在mapper中...转载 2018-04-21 17:36:28 · 154 阅读 · 0 评论 -
mybatis进阶--一对一查询
mybatis进阶--一对一查询 所谓的一对一查询,就是说我们在查询一个表的数据的时候,需要关联查询其他表的数据。 需求 首先说一个使用一对一查询的小需求吧:假设我们在查询某一个订单的信息的时候,需要关联查询出创建这个订单对应的用户信息。表模型如下( ResultType sql语句的书写 首先,我们要对我们的需求进行分析。1.我们需要确定这个需求需要涉及到哪两张表,其中...转载 2018-04-21 17:13:12 · 182 阅读 · 0 评论 -
mybatis入门--mapper代理方式开发
不使用代理开发 之前,我们说了如何搭建mybatis框架以及我们使用mybatis进行简单的增删改查.现在,我们一起来构建一个dao层的完整代码.并用@test来模拟service层对dao层进行一下调用. 其实构建很简单,跟我们之前的差不多.如果不是为了演示其中的弊端,我甚至都懒得再写这些东西了.我们这次用UserDao为大家演示. ...转载 2018-04-20 21:35:42 · 138 阅读 · 0 评论 -
【MyBatis】查询缓存(一级缓存和二级缓存)
一级缓存:是SQlSession级别的缓存。在操作数据库时需要构造SqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的SqlSession之间的缓存数据区域(HashMap)是互相不影响的。 二级缓存:是mapper级别的缓存,多个SqlSession去操作同一个mapper的sql语句,多个SqlSession可以共用二级缓存...转载 2018-04-20 21:34:42 · 927 阅读 · 0 评论 -
mybatis整合redis(主要是关于怎么样在mybatis中配置redis作为缓存)
mybatis默认缓存是PerpetualCache,可以查看一下它的源码,发现其是Cache接口的实现;那么我们的缓存只要实现该接口即可。该接口有以下方法需要实现: String getId(); int getSize(); void putObject(Object key, Object value); Object getObject(Object key); Object r...转载 2018-04-23 18:57:39 · 903 阅读 · 0 评论 -
Mybatis缓存和Redis缓存服务器的案例分析
MyBatis默认是支持一级缓存和二级缓存,他自身的实现是通过PerpetualCache,这哥缓存对象实现了,当然也可以是MemarCache。目前中用的比较多的就是Redis,是一个nosql数据库,也称为缓存数据库。1. 什么是一级缓存? 为什么使用一级缓存? 每当我们使用MyBatis开启一次和数据库的会话,MyBatis会创建出一个SqlSession对象表示一次数据库会话。 ...转载 2018-04-23 18:50:00 · 2159 阅读 · 0 评论 -
mybatis进阶--输入映射和输出映射
我们知道,mapper.xml是我们配置操作数据库的sql语句的地方。其中每个sql语句对应着一个方法,每个方法都有自己的输入输出参数类型。那么这些类型都是怎么配置的呢?今天我们来一起学习下。 输入映射 首先是输入类型,输入类型分为以下几种:1.基本类型。2.pojo对象类型。3.pojo包装对象。所谓的包装对象,可以理解为,一个对象里面包含着另外一个对象。 ...转载 2018-04-19 11:23:44 · 144 阅读 · 0 评论 -
mybatis进阶--输入映射和输出映射
我们知道,mapper.xml是我们配置操作数据库的sql语句的地方。其中每个sql语句对应着一个方法,每个方法都有自己的输入输出参数类型。那么这些类型都是怎么配置的呢?今天我们来一起学习下。 输入映射 首先是输入类型,输入类型分为以下几种:1.基本类型。2.pojo对象类型。3.pojo包装对象。所谓的包装对象,可以理解为,一个对象里面包含着另外一个对象。 ...转载 2018-04-11 16:14:36 · 219 阅读 · 0 评论 -
mybatis入门--单表的增删改操作
mybatis入门--单表的增删改操作单表的增加操作 前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作。首先是在user.xml文件中添加insert的方法。代码如下 <!-- 添加用户 --> <insertid="insertUser"parameterType="cn.itcast.mybat...转载 2018-04-11 16:04:47 · 163 阅读 · 0 评论 -
mybatis入门-新手注意问题
参数问题 在映射文件中通过parameterType指定输入参数的类型;在映射文件中通过resultType指定输出结果的类型。 占位符和拼接符问题 #{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。 如果接收简单类型,#{}中可以写成value或其它名称。 #{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性....转载 2018-04-11 12:56:22 · 146 阅读 · 0 评论 -
MyBatis学习总结_13_Mybatis查询之resultMap和resultType区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,将数据库中列数据复制到对象的相应属性上,可以用于复制查询,两者不能同时用。1、resultType返回单个实例<select id="sele...转载 2018-04-11 12:45:57 · 143 阅读 · 0 评论 -
mybatis和hibernate比较
mybatis和hibernate的比较 Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。 Mybatis学习门槛低...转载 2018-04-11 11:31:44 · 902 阅读 · 0 评论 -
mybatis入门--#{}和${}的区别
我们知道,在mybatis中,sql语句是需要我们自己写的。跟在普通的sql不一样的是,我们在使用mybatis框架的时候,使用的占位符不是?而是#{}有时候还会出现这个符号${}这些符号都代表啥呢? #{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。 #{}可以接...转载 2018-04-11 11:25:03 · 147 阅读 · 0 评论 -
mybatis入门-框架原理
mybatis是什么 在说mybatis原理之前,我们有必要知道,mybatis到底是个什么东西。mybatis是一个持久层的框架。是一个不完全的ORM框架。因为它需要由程序员自己去写sql语句。但是它也可以将对象和数据库表进行输入和输出映射。 相对于hibernate框架来说,mybatis学习起来更加的简单,学习成本也相对较低。可以让程序员将自己的精力放在sql语句上,由于在myb...转载 2018-04-08 22:59:08 · 227 阅读 · 0 评论 -
mybatis进阶--一对多查询
mybatis进阶--一对多查询 首先,我们还是先给出一个需求:根据订单id查询订单明细——我们知道,一个订单里面可以有多个订单的明细(需求不明确的同学,请留言或者去淘宝网上的订单处点一下就知道了)。这个时候,一个订单,对应多个订单的id。这种需求出现的时候,我们应该如何查询呢? 此时我们的数据模型如下图(左)由于查询用户也是我们的需求,所以就在原有的基础上进行扩展,数据模型如下(右): ...转载 2018-04-21 18:35:03 · 196 阅读 · 0 评论