Mybatis的输出结果封装】的更多相关文章

resultType属性可以指定结果集的类型,它支持基本类型和实体类类型. 需要注意的是,它和parameterType一样,如果注册过类型别名的,可以直接使用别名. 没有注册过的必须使用全限定类名. 同时,当是实体类名称是,还有一个要求,实体类中的属性名称必须和查询语句中的列名保持一致,否则无法实现封装. 当实体类属性和数据库表的列名不一致时: 修改实体类代码:(此时的实体类属性和数据库表的列名已经不一致了) public class User implements Serializable…
Mybatis的输出映射,也就是对查询结果集的一个映射,主要有两种: 1.resultType(不需要配置,可以直接用) 一般是实体类 基本类型也可以 2.resultMap(需要配置resultMap与之对应) 1.resultType返回结果是实体类,这种写法比较简单,直接贴代码,有几个要明白的地方就是: 查询出来的列名和我们的实体类的属性名必须一致,如果不一致,映射不成功. 有一个或者一个以上一致:不一致的显示为null 全部不一致:该对象不被创建 <select id="findA…
hibernate和mybatis的之CRUD封装差别 以下讲的是基于MVC三层架构. 由于设计架构的差别,hibernate在实际编程中可以把基础的CRUD封装,比如BaseDao类.其它类只要去继承BaseDao就能执行所有的基础的CRUD.这样就非常方便.这个带来的好处还有,可以建立BaseService和BaseAction. 由于mybatis的映射文件中,虽然SQL语句中的表名可以通过parameterType指定,但是resultType必须定死,不能以参数的形式给予指定.导致的结…
Mybatis中输出映射resultType与resultMap的区别 (原文地址:http://blog.csdn.net/acmman/article/details/46509375) 一.resultType 使用resultType进行输出映射,只有查询出来的列名和pojo(实体bean)中的属性名一致,该列才可以映射成功. 如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象.只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象. 1.输出简单类型…
1.结果封装为List<Object> 接口示例: public List<Members> selectMembersListByName(String name); 配置文件示例: <select id="selectMembersListByName" resultType="members"> select * from members where member_name like #{member_name} </…
最近在项目中使用mybatis与spring集成,由于项目使用maven分模块打包,经常遇到mybatis mapper少配置子模块或者maven pom中忘记引用子模块导致的mybatis加载不到dao或mapper启动不起来,直接卡死.其实这是mybatis一个bug,在sqlSessionFactory加载的时候没有找到mapper或者dao,mybatis没有把异常抛出. 解决方法就是自己写个sqlSessionFactory抛出异常,替代org.mybatis.spring.SqlSe…
1.在mybatis-config.xml配置中添加setting配置参数,会打印SQL执行结果 <?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">…
1: mybatis-config.xml <?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"> <configuration> <…
import java.lang.annotation.Annotation; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.stereotype.Component; @…
Mybatis(2)CRUD 1.基于代理Dao实现CRUD操作 使用要求: 1.持久层接口(src\main\java\dao\IUserDao.java)和持久层接口的映射配置(src\main\resources\dao\IUserDao.xml)必须在相同的包下 2.持久层映射配置中 mapper 标签的 namespace 属性取值必须是持久层接口的全限定类名 <mapper namespace="dao.IUserDao"> 3.SQL 语句的配置标签,,,的…
前言综述:   其实在我们分析Mybatis的查询缓存或者是一些简介的时候,我们就不难看到有关于Mybatis输入输出映射的东西,比如说: 但是一直没有想起来系统的来总结一下这方面的相关知识,偶然看到这块,心血来潮,总结一下: Mybatis的输入映射和输出映射可以是一些基本数据类型.hashmap或者是pojo的包装类型.其中输入映射相对来说比较简单,只有parameterType一种:相对来说,输出映射稍微复杂一点,存在resultType和resultMap两种方式或者说是格式,其中res…
一.基本概述 在前面的博客中介绍到Mybatis的逆向生成工具,为我们生成了每个实体的基本增删改查的代码,那么每个实体都是那么多的代码,我们很容易的发现,有很大的相似性.对于这部分代码,应该予以抽象封装. 首先,看一下思路,在用工程生成代码的时候 ,我们发现,有一个Mapper.xml文件,在这里面有具体的sql语句,其实,就相当于,我们的DAO底层实现,而还有一个mapper的接口类,这个就相当于是DAO的接口.在mapper.xml和mapper接口类中,每个实体都有很大的相似度,所以,抽象…
mybatis学习笔记(7)-输出映射 标签: mybatis mybatis学习笔记7-输出映射 resultType 输出简单类型 输出pojo对象和pojo列表 resultMap resultMap用法 小结 本文主要解说mybatis的输出映射. 输出映射有两种方式 resultType resultMap resultType 使用resultType进行输出映射,仅仅有查询出来的列名和pojo中的属性名一致.该列才干够映射成功. 假设查询出来的列名和pojo中的属性名所有不一致.没…
Mybatis是一个持久层框架,Apache底下的一个项目,它的前身是ibatis,它支持普通的SQL查询,存储过程和高级映射的优秀框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索,Mybatis使用简单的xml或注解用于配置和原始映射,将接口和java的实体类,映射成数据库相关的记录. 从这些描述中我们大概可以总结出三点,Mybatis的特色: 1.使用xml来操作数据库(在xml中做增删改查) 2.对输入的参数做了映射 3.对输出的查询结果做了映射 看一张My…
目录 前言 准备工作 MyBatis默认缓存设置 缓存实现原理分析 参数localCacheScope控制的缓存策略 参数cacheEnabled控制的缓存策略 总结 前言 提到缓存,我们都会不约而同地认识到这是提高系统性能的必要措施之一,特别是高命中率的缓存设置,将会大大提高系统的整体吞吐量.缓存的应用场景从小到在http会话中缓存登录信息,大到为数据库分担一部分查询压力的独立缓存组件(如Redis,Memcached等),应用都非常普遍.而MyBatis作为Java中非常流行的ORM组件,也…
简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整体框架搭建起来,而映射部分则是准备了一次SQL操作所需的信息 一次SQL执行的主要事件是什么? 输入参数解析,绝大多数SQL都是需要参数的 SQL,通过SQL与数据库交互,所以最根本的是SQL,如果连SQL都没有,还扯个蛋蛋? 结果映射,Mybatis可以帮我们完成字段与Java类型的映射 所以说S…
Mybatis sql映射文件浅析 Mybatis简介(三)   简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整体框架搭建起来,而映射部分则是准备了一次SQL操作所需的信息 一次SQL执行的主要事件是什么? 输入参数解析,绝大多数SQL都是需要参数的 SQL,通过SQL与数据库交互,所以最根本的是SQL,如果连SQL都没有,还扯个蛋蛋? 结果映…
* 本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程.该过程本身比较复杂,牵涉到的技术点比较多.包括但不限于 Mapper 接口代理类的生成.接口方法的解析.SQL 语句的解析.运行时参数的绑定.查询结果自动映射.延迟加载等.本文对所列举的技术点,以及部分未列举的技术点都做了较为详细的分析.全文篇幅很大,需要大家耐心阅读.下面来看一下本文的目录: 源码分析类文章通常比较枯燥.因此,我在分析源码的过程中写了一些示例,同时也绘制了一些图片.希望通过这些示例和图片,帮助大家理解…
前言 由于编程思想与数据库的设计模式不同,生出了一些ORM框架. 核心都是将关系型数据库和数据转成对象型.当前流行的方案有Hibernate与myBatis. 两者各有优劣.竞争激烈,其中一个比较重要的考虑的地方就是性能. 因此笔者通过各种实验,测出两个在相同情景下的性能相关的指数,供大家参考. 友情提示:如果你嫌弃文章太长,可以拉到文末看结论即可. 测试目标 以下测试需要确定几点内容: 性能差异的场景: 性能不在同场景下差异比: 找出各架框优劣,各种情况下的表现,适用场景. 测试思路 测试总体…
1. mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息. mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句.此文件需要在SqlMapConfig.xml中加载. SqlMapConfig.xml是mybatis的核心文件.mybatis将dao层与sql语句分离开来,虽然写的时候分离开来了,但是执行的时候还是要依靠sql语句,所以我们的sql语句写在Mapper.xml中.我们在加载核心…
imooc视频学习笔记 ----> URL:http://www.imooc.com/learn/154 OGNL规则: 从哪里取?(作用域.取值范围,例如封装入一个对象,该对象就是取值范围) --> 要取的是什么类型的值()--> 如何表达 --> 例如动态拼接中的<if test = "OGNL" SQL中获取变量值: 类似,但不是OGNL,不具备OGNL特性,例如 #{属性名}.#{_parameter} log4j --> 相应的jar包 -…
MyBatis简介 Mybatis是Apache的一个Java开源项目,是一个支持动态Sql语句的持久层框架.Mybatis可以将Sql语句配置在XML文件中,避免将Sql语句硬编码在Java类中.与JDBC相比: Mybatis通过参数映射方式,可以将参数灵活的配置在SQL语句中的配置文件中,避免在Java类中配置参数(JDBC) Mybatis通过输出映射机制,将结果集的检索自动映射成相应的Java对象,避免对结果集手工检索(JDBC) Mybatis可以通过Xml配置文件对数据库连接进行管…
一.定义SQL语句 (1)select 标签的使用 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user resultType :语句返回值类型或别名.注意,如果是集合,那么这里填写的 是集合的泛型,而不是集合本身(resultType 与resultMap 不能并用) 例子: sql: <select id="userList" parameterType="user&qu…
**********************************************************************************************一:mybatis概念1:简介 MyBatis本是apache的一个开源项目iBatis,2010年改名为 MyBatis, MyBatis 是一个基于Java的持久层框架.(操作数据库)2:优点 1:半自动化的ORM实现(实体类和SQL语句之间建立映射关系) 2:SQL代码从程序代码中彻底分离,可重用 3:与…
**********************************************************************************************一:mybatis概念1:简介       MyBatis本是apache的一个开源项目iBatis,2010年改名为 MyBatis,       MyBatis 是一个基于Java的持久层框架.(操作数据库)2:优点       1:半自动化的ORM实现(实体类和SQL语句之间建立映射关系)       2…
----简单自定义mybatis流程----一.首先封装daoMapperxml文件和sqlMapconfig配置文件,如何封装:(1).封装我们的Mapper.xml文件,提取名称空间namespace,提取方法名id,提取我们的结果类型resultType,再提取我们的sql语句sqlStatement创建实例对象封装.(2).封装我们的sqlMapconfig.xml操作数据库的配置文件,提取数据源datasource(c3p0,德鲁伊...),再提取连接数据库四个步骤:driver驱动,…
MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. MyBatis是支持普通SQL查询,存储过程和高级映射的持久化框架,底层是对JDBC的封装,是一个半自动的ORM框架. MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通…
一.简介 MyBatis 是一款优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 Mybatis可以将Sql语句配置在XML文件中,避免将Sql语句硬编码在Java类中.与JDBC相比: Mybatis通过参数映射方式,可以将参数灵活的配置在SQL语句中的配置文件中,避免在Java类中配置参数(JDBC) Mybatis通过输出映射机制,将结果集的检索自动映射成相应的Java对象,避免对结果集手工检索(JDBC) Mybatis可以通过Xml配置文件…
Mybatis框架是相对于优化dao层的框架,其有效的减少了频繁的连接数据库(在配置文件xml中进行配置),将sql语句与java代码进行分离(写在XXXXmapper.xml文件中,一个表对应一个xml文件),有效的处理了各种条件(定义了输入类型pojo)并且将结果又映射到java对象中(定义了输出类型).需要注意的是每个表对应的xml文件的地址需要在配置文件中进行配置(可以指引整个文件夹),当使用动态代理的接口mapper时,需要注意好其的四个规范!并且其可以将查询及输出结果封装到一个类,并…
一.定义SQL语句 (1)select 标签的使用 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user resultType :语句返回值类型或别名.注意,如果是集合,那么这里填写的 是集合的泛型,而不是集合本身(resultType 与resultMap 不能并用) 例子: sql: <select id="userList" parameterType="user&qu…