mybaits的使用
yinbucheng
这个作者很懒,什么都没留下…
展开
-
mybaits中多个参数传入使用
据我目前接触到的传多个参数的方案有三种。第一种方案 DAO层的函数方法 ?1PublicUser selectUser(String name,String area);对应的Mapper.xml ?123转载 2017-05-27 14:34:10 · 402 阅读 · 0 评论 -
mybaits+mysql获取插入数据的主键
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。 方法:在mapper中指定keyProperty属性,示例如下:Xml代码 insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.转载 2017-08-07 17:00:45 · 354 阅读 · 0 评论 -
mybatis中的foreach的使用
foreach一共有三种类型,分别为List,[](array),Map三种。foreach属性属性描述item循环体中的具体对象。支持属性的点路径访问,如item.age,item.info.details。 具体说明:在list和数组中是其中的对象,在map中是value。 该参数为必选。collection转载 2017-08-02 10:58:59 · 11901 阅读 · 0 评论 -
mybait中的log4j配置
### 设置Logger输出级别和输出目的地 ###04log4j.rootLogger=debug,stdout,logfile05 06 07### 把日志信息输出到控制台 ###转载 2017-08-09 20:10:19 · 215 阅读 · 0 评论 -
mybatis中加载mapper文件
这一章我们来看看mybatis是怎么读取mapper的xml配置文件并解析其中的sql语句。 我们还记得是这样配置sqlSessionFactory的:[java] view plain copy"sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">转载 2017-08-22 11:16:03 · 5164 阅读 · 0 评论 -
MyBatis源码分析:如何解析配置文件
MyBatis可以使用xml或者注解的方式进行配置,不管是哪种方式,最终会将获取到的配置参数设置到Configuration类中,例如,SqlSessionFactoryBuilder类中就是通过解析XML来创建Configuration。public SqlSessionFactory build(InputStream inputStream, String environment,转载 2017-08-22 11:19:33 · 310 阅读 · 0 评论 -
MyBatis源码分析(1)-MapConfig文件的解析
MyBatis源码分析(1)-MapConfig文件的解析1.简述 MyBatis是一个优秀的轻ORM框架,由最初的iBatis演化而来,可以方便的完成sql语句的输入输出到java对象之间的相互映射,典型的MyBatis使用的方式如下:String resource = "org/mybatis/example/mybatis-config.xml";Inp转载 2017-08-22 09:05:48 · 496 阅读 · 0 评论 -
Mybatis源码解析-MapperRegistry注册mapper接口
知识储备SqlsessionFactory-mybatis持久层操作数据的根本,具体的解析是通过SqlSessionFactoryBean生成的,具体的形成可见>>>Spring mybatis源码篇章-SqlSessionFactoryBeanMapperInterface-mybatis的java接口类,用于service/controller层的调用,具体的解析是通过Mapper转载 2017-08-22 11:32:24 · 906 阅读 · 0 评论 -
mybaits中一级和二级缓存的使用
MyBatis缓存我们知道,频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以把查询结果存储起来,下次查询同样的内容的时候直接从内存中获取数据即可,这样在某些场景下可以大大提升查询效率。MyBatis的缓存分为两种:一级缓存,一级缓存转载 2017-08-22 11:34:48 · 470 阅读 · 0 评论 -
Mybatis SqlSessionTemplate 源码解析
Mybatis SqlSessionTemplate 源码解析在使用Mybatis与Spring集成的时候我们用到了SqlSessionTemplate 这个类。 bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> constructor-arg index=转载 2017-08-22 15:10:59 · 246 阅读 · 0 评论 -
mybatis中自定义ObjectFactory
关于在MyBatis中的ObjectFactory有什么用,在官方文档中有这样的描述(大多数网上的博客都是直接引用这一描述):MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通过创建转载 2017-08-23 06:42:05 · 421 阅读 · 0 评论 -
Mybatis中ObjectFactory自定义实现
关于在MyBatis中的ObjectFactory有什么用,在官方文档中有这样的描述(大多数网上的博客都是直接引用这一描述):MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通过创建转载 2017-08-23 21:14:51 · 1614 阅读 · 0 评论 -
mybatis的分页插件pageHelper
好多天没写博客了,因为最近在实习,大部分时间在熟悉实习相关的东西,也没有怎么学习新的东西,这周末学习了MyBatis的一个分页插件PageHelper,虽然没有那么的强大(我在最后会说明它的缺点),但还是挺不错的。这篇博文主要来总结下如何使用PageHelper。 我们知道,在MySQL中,分页的sql是使用limit来做,如果我们自己写sql,那分页肯定是没有任何问题的。但是一旦mode转载 2017-08-24 10:09:34 · 443 阅读 · 0 评论 -
spring配置mybatis的sqlsessionfactory
spring配置mybatis的sqlsessionfactory class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> classpath*:jdbc.properties转载 2017-06-29 12:52:37 · 2235 阅读 · 0 评论 -
mybaits中使用二级缓存
mybatis学习笔记(15)-查询缓存之二级缓存标签: mybatismybatis学习笔记15-查询缓存之二级缓存二级缓存原理开启二级缓存调用pojo类实现序列化接口测试方法useCache配置刷新缓存就是清空缓存应用场景和局限性本文主要讲mybatis的二级缓存,二级缓存是mapper级别的缓存,多个SqlSession去操转载 2017-06-29 12:01:12 · 425 阅读 · 0 评论 -
Mybaits中一对多,多对多的查询使用
一对多1.方法一 select="cn.itcast.mapper.UserInfoMapper.findByFid"column="id"> select * from course_info where id = #{id,jdbcType=INTEGER}原创 2017-05-15 20:03:45 · 482 阅读 · 0 评论 -
mybaits中的$和#区别及用法
动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}。 在下面的语句中,如果 username 的值为 zhangsan,则两种方式无任何区别: select * from user where转载 2017-05-15 15:59:23 · 1053 阅读 · 0 评论 -
mybaits中查询中对象中存在对象(可能是单一对象,可能是集合)
User和Department数据为多对一实体对象:User属性:id Integer,name String,Department departmentDepartment属性id Integer,name String,sn Stringmapper.xml中配置问题件xml version="1.0" encoding="UTF-8转载 2017-05-15 11:22:03 · 1249 阅读 · 0 评论 -
mybatis中批量删除
一. 这里主要考虑两种参数类型:数组或者集合.而这点区别主要体现在EmpMapper.xml文件中标签的collection属性:当collection=”array“时,表名参数为数组;当collection=”list“时,表名参数为集合.二. 注意:无论Mybatis是与MySQL数据库结合,还是与Oracle数据库,都同样适合如下设置与操作.三. 具转载 2017-05-15 07:27:30 · 906 阅读 · 0 评论 -
mybaits中批量插入操作注意点
oracle和mysql数据库的批量update在mybatis中配置不太一样:oracle数据库:update id="batchUpdate" parameterType="java.util.List"> foreach collection="list" item="item" index="index" open="begin" close="end;" sepa转载 2017-05-14 23:55:01 · 475 阅读 · 0 评论 -
MyBatis中批量插入
在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来。 实体类TrainRecord结构如下: Java代码 public class TrainRecord im转载 2017-05-14 23:32:32 · 280 阅读 · 0 评论 -
mybaits中常用表标签详解
接上篇,对Mybatis的特点和映射管理介绍,本篇将详解介绍mapper.xml中的常用标签和它们各自的功能及使用方式一、SQL语句标签:[html] view plain copy select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterT转载 2017-05-14 16:52:48 · 483 阅读 · 0 评论 -
mybaits的映射器和管理
关于mybatis是什么、有什么特点、实现机制之类的话题,网上通篇大论,这里不再赘述,只谈干货,希望能够用最高的效率,最精确的和读者找到共鸣并相互交流。一、为什么要使用mybaits框架? 1)效率上最优:相比hibernate而言,mybatis的体积如同九牛一毛,加载速度快,运行速度快,极大的提供和程序和数据库之间的交互效率; 2)灵转载 2017-05-14 16:51:38 · 420 阅读 · 0 评论 -
mybaits中的批量操作
一:Oracle数据库1:批量插入Java.util.List" > insert into RECIPEDETAIL (RDID, ROID, TYPE, NAME, MEDIWEIGHT, MEDINUM, MONEY, OPERATETIME, CHARGENUMBER, REMARK, INSTRUCTION, AMOU转载 2017-05-14 21:54:49 · 288 阅读 · 0 评论 -
mybaits中set标签的使用
MyBatis在生成update语句时若使用if标签,如果前面的if没有执行,则可能导致有多余逗号的错误。使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。 没有使用if标签时,如果有一个参数为null,都会导致错误,如下示例:Xml代码id="updateByPrimaryKeySelective" parameterType=转载 2017-05-27 15:50:44 · 411 阅读 · 0 评论 -
mybaits中返回类型为boolean类型
在Mybatis中,有时候需要返回布尔值 ,来确定某个记录行是否存在。 例如: 说明: Mybatis是根据查询到的记录数进行转换的(1=true,0=false) 需要注意的地方:如果查询到多条记录(大于1),返回的却是false, 这时就与我们的期望的刚好相反。这里,可以换其它方法,可以通过返回记录数,进行判断,也可以保证记录在数据库是唯一的。转载 2017-05-27 15:56:19 · 23334 阅读 · 8 评论 -
mybatis中采用模糊匹配得到另一种用法
需求:一个搜索框同时对userId和title进行模糊查询。第一次: where> if test="disId!=null and disId != '' " > and DIS_ID = #{disId} if> if test="category!=null" > and CATEGORY = #转载 2017-05-27 18:24:47 · 545 阅读 · 0 评论 -
mybatis拦截器的注解说明
@Intercepts( { @Signature(type = Executor.class,method = "query", args = {MappedStatement.class, Object.class, RowBounds.class,ResultHandler.class ) })type:表示拦截的类,这里是Executor的实现类method:表示拦截转载 2017-08-24 11:00:47 · 6332 阅读 · 0 评论