搜档网
当前位置:搜档网 › mybatis映射

mybatis映射

mybatis映射
mybatis映射

MyBatis学习总结二——SQL映射配置

1.SQL映射配置文件的结构概览

2.select元素

简单示例:

这段sql语句的意思是传入一个int类型的参数给select语句,返回的结果集保存在hashmap中,hashmap的key为字段名。

这里的#{id}就是使用PrepareStatement的方式传入参数,即像这样:

String selectPerson = “SELECT * FROM PERSON WHERE ID=?”;

PreparedStatement ps = conn.prepareStatement(selectPerson);

ps.setInt(1,id);

select元素支持的属性:

Select Attributes

Select Attributes

数据修改语句insert、update 和delete 的配置使用都非常相似,只是insert元素多了两个属性配置(useGeneratedKey,keyProperty,keyColumn)。

下面是insert元素的示例(update,delete元素也差不多):

useGeneratedKeys=”true” keyProperty=”id”>

insert into Author (username,password,email,bio)

values (#{username},#{password},#{email},#{bio})

>

select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1

insert into Author

(id, username, password, email,bio, favourite_section)

values

(#{id}, #{username}, #{password}, #{email}, #{bio},

#{favouriteSection,jdbcType=VARCHAR}

)

Insert, Update and Delete Attributes

3.parameter(参数)

我们可以向#{id},#{name}这样形式的语句转入参数,但我们还可以更加具体地声明参数的java类型,jdbc类型,以及使用哪个TypeHandler,对于jdbc类型是NUMERIC 的参数,还可以指定他的小数位数,如:

#{age,javaType=int,jdbcType=NUMERIC,numbericScale=2,typeHandler=My TypeHandler}

除了这些外,还可以声明参数是IN,OUT或INOUT模式

#{age,javaType=int,jdbcType=NUMERIC,numbericScale=2,typeHandler=My TypeHandler,mode=INOUT}

最好,还可以使用${str}形式,把str参数的直接字符串值替换到${str}符号中,这种方式尽量少用,因为这会造成SQL注入的问题。

4.sql元素

这个元素可以被用来定义可重用的SQL 代码段,可以包含在其他语句中。比如:

id,username,password

5.resultMap元素

resultMap的概览视图:

?constructor - 类在实例化时,用来注入结果到构造方法中

?idArg - ID 参数;标记结果作为ID 可以帮助提高整体效能

?arg - 注入到构造方法的一个普通结果

?id–一个ID 结果;标记结果作为ID 可以帮助提高整体效能

?result–注入到字段或JavaBean 属性的普通结果

?association–一个复杂的类型关联;许多结果将包成这种类型

?嵌入结果映射–结果映射自身的关联,或者参考一个

?collection–复杂类型的集

?嵌入结果映射–结果映射自身的集,或者参考一个

?discriminator–使用结果值来决定使用哪个结果映射

?case–基于某些值的结果映射

?嵌入结果映射–这种情形结果也映射它本身,因此可以包含很多相同的元素,或者它可以参照一个外部的结果映射。

5.1 id、result及constructor

这三个元素使用起来都非常相似的,它们只能用于简单类型数据。

这些元素支持的属性:

这些元素的映射支持的JDBC类型有:

association关联查询用于处理一对一关系,它可以使用两种方式查询这个关联对象:嵌套查询方式和嵌套结果方式。

示例:

javaType="Author" select="selectAuthor"/>

Notice:嵌套查询的属性column,表示该关联对象是通过哪个字段查询得到的,该字段的值会被当作参数传递到嵌套查询selectAuthor中。

Notice:嵌套查询方式可以很容易地实现递归查询,而嵌套结果方式是不能实现递归查询的。

示例:

javaType="Author" resultMap="authorResult"/>

Notice:嵌套结果方式一般对应的是一个多表连接查询,把查询出来的结果集映射到关联对象上。

在多表连接查询中,一般都会重用resultMap,但连接查询的结果集的列名要求是不一样的,association元素提供了一个columnPrefix属性来解决这个问题。如一篇文章有两个作者共同完成,一个主编,一个副编。

resultMap="authorResult"/>

resultMap="authorResult"

columnPrefix="co_"/>

5.3 collection集合映射

集合映射是用于解决一对多的关系模型映射问题。它与关联映射非常相似,这里主要说明集合映射的一些不同点。

Notice:collection的column属性表示查询该集合所需要的列或字段,它会被作为参数传递到嵌套查询中。

这里展示一个例子,如何使用嵌套查询来实现递归查询:

5.3.1典型的树型表结构

上图是Category表的结构图,其中parent_id是外键,它引用同一个表的id字段。这其实就是经典的在同一个表中实现树型结构。

5.3.2 Category表的数据

5.3.3 配置mybatis的映射文件,实现递归查询

select="selectCategoryById">

ofType="Category" javaType="java.util.ArrayList"

select="selectCategoryChildren">

Spring和MyBatis的外文翻译..

本科生毕业设计 (论文) 外文翻译 原文标题MVC Design Pattern for the multi framework distributed applications using XML, spring and struts framework 译文标题使用XML,Spring和struts以MVC为设计模式的多分布式应用程序框架 作者所在系别计算机与遥感信息技术学院 作者所在班级B12511 作者姓名王硕 作者学号20124051117 指导教师姓名耿炎 指导教师职称院长 完成时间2015 年1 月 北华航天工业学院教务处制

译文标题使用XML,Spring和struts以MVC为设计模式的多分布式应用程序框 架 原文标题MVC Design Pattern for the multi frameworkdistributed applications using XML, spring and struts framework 作者Praveen Gupta 译名普利文·古塔国籍印度 原文出处International Journal on Computer Science and Engineering 使用XML,Spring和struts以MVC为设计模式的多分布式应用程序框架 摘要:模型-视图-控制器(MVC)是一个基本的设计模式,用来分离用户界面与业务的逻辑。近些年来,应用程序的规模越来越大,而MVC设计模式可以弱耦合不同应用层的程序。本文提出了一种基于J2EE平台上的网络,它扩展了MVC、XML 的应用程序框架,易于维护。这是一个包括表示层、业务层、数据持久层和数据库层的多系统层,由于其代码的具有独立性,可维护性和可重用性大大提升。在本文中,我们使用MVC实现spring和struts框架。我们的研究显示,应用多个框架设计应用程序时,使用MVC概念能使应用程序转变为更容易、较单一的框架。 关键字:MVC,Spring,XML 一介绍 近些年来,web是非常复杂的问题。因为公司和组织越来越多,不同类型的通讯设备也越来越多,特别当业务要求应用程序使用web和许多通信设备的时候,网络编程的性能越加重要。所以在互联网上,在增加负载的数据的同时,我们必须照顾体系结构的问题。让我们简要讨论到目前为止MVC的研究。 1.1没有MVC 在web开发的初始阶段,页面被用来设计html,其中Html是纯文本。这是第一个在互联网上工作的标记语言。今天仍然是基于块的所有互联网的编程语言。用户必须实现与静态页面交互,信息手动写在页面时必须改变。随着时间增长,语言和页面可以按照用户需求相互作用,页面也会有相应的变化。 1.2 MVC模式一 第一个重大变化是由于架构的流行,引入了MVC模式。这种具有控制演示、业务逻辑和流程的架构是以页面为中心,以Java语言为服务器的页面程序。逻辑就是在这个模型概念中介绍的。Java bean和scriptlet、表达式等业务逻辑都是以硬性编码的形式存在的。页面里的所有代码都是用jsp编写的。让我们假设,我们想传输基于我们收到数据时的jsp的情况。 图一页面导航MVC-1框架 1.3 MVC模式二 模型1架构能够解决一些网络和网络编程的问题,但仍有很多东西丢失。它是集中jsp页面的导航,从而能进一步发展的体系结构的观点。在这个过程中未来发

struts2+spring3+mybatis整合

--src |-com.ssm |-action |-LoginAction.java |-entity |-User.java |-iface |-IUserDao.java |-impl |-UserDao.java |-seriface |-IUserServices.java |-impl |-UserServices.java |-sqlmap |-User.xml applicationContext.xml database.Properties log4j.Properties myBatis-config.xml struts.Properties struts.xml ok直接上代码了: Action类: LoginAction.java package com.ssm.action; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.Action; import https://www.sodocs.net/doc/9b1921069.html,er; import com.ssm.seriface.IUserService; public class LoginAction implements Action { private User user; private IUserService userServices; public void setUserServices(IUserService userServices) { https://www.sodocs.net/doc/9b1921069.html,erServices = userServices; } public User getUser() { return user; }

mybatis中文版教程

MyBatis Spring1.0.0-RC3 参考文档 MyBatis 社区(https://www.sodocs.net/doc/9b1921069.html,) Copyright ? 2010 本文档的拷贝仅允许您个人使用或分发给其他用户,但是不能收取任何费用,后期的发布无论是印刷版或电子版,也会进行版权声明。 本文档由南磊(nanlei1987@https://www.sodocs.net/doc/9b1921069.html,)翻译

目录 第一章介绍 (3) 1.1 整合动机 (3) 1.2 要求 (3) 1.3 感谢 (3) 第二章入门 (4) 2.1 安装 (4) 2.2 快速创建 (4) 第三章SqlSessionFactoryBean (6) 3.1 创建 (6) 3.2 属性 (6) 第四章事务 (8) 4.1 标准配置 (8) 4.2 容器管理事务 (8) 第五章使用SqlSession (9) 5.1 SqlSessionSupport (9) 5.2 SqlSessionTemplate (9) 第六章MapperFactoryBean (11) 6.1 创建 (11) 6.2 注入映射器 (11) 6.3 自动配置 (12) 第七章使用MyBatis API (13) 第八章示例代码 (14)

第一章介绍 1.1 整合动机 正如第二版,Spring仅支持iBatis2。那么我们就想将MyBatis3的支持加入到Spring3.0(参考Spring的Jira的问题)中。不幸的是,Spring 3.0的开发在MyBatis 3.0官方发布前就结束了。因为Spring开发团队不想发布一个基于非发行版的MyBatis的整合支持,那么Spring 官方的支持就不得不等到至少3.1版本了。要在Spring中支持MyBatis,MyBatis社区认为现在应该是自己团结贡献者和有兴趣的人一起来开始进行Spring和MyBatis整合的时候了。 这个小类库就来创建丢失的粘贴Spring和MyBtatis这两个流行框架的胶水。减少用户不得不来配置MyBatis和Spring 3.X上下文环境的样板和冗余代码。它还透明地增加了Spring 对MyBatis事务的支持。 1.2 要求 在开始阅读本手册之前,很重要的一点是你要熟悉Spring和MyBatis这两个框架还有和它们有关的术语,本手册不会提供二者的背景内容,基本安装和配置教程。 和MyBatis一样,MyBatis-Spring也需要Java 5或更高版本。 1.3 感谢 非常感谢那些使得本项目成为现实的人们(按字母顺序排序)。Eduardo Macarron,Hunter Presnall和Putthibong Boonbong的编码工作,测试和文档修改;Andrius Juozapaitis,Giovanni Cuccu,Raj Nagappan和Tomas Pinos的贡献;而Simone Tripodi发现了这些人并把他们带入项目之中。没有他们的努力,这个项目是不可能存在的。

SpringMvc +Mybatis最全的配置

Springmvc+mybatis框架配置 (内含日志+多数据源配置+事务配置+maven配置)1spring-mvc.xml

黑马程序员mybatis教程第二天:延迟加载

延迟加载 什么是延迟加载 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 使用association实现延迟加载 需求 查询订单并且关联查询用户信息 mapper.xml 需要定义两个mapper的方法对应的statement。 1、只查询订单信息 SELECT * FROM orders 在查询订单的statement中使用association去延迟加载(执行)下边的satatement(关联查询用户信息) 2、关联查询用户信息 通过上边查询到的订单信息中user_id去关联查询用户信息

使用UserMapper.xml中的findUserById 上边先去执行findOrdersUserLazyLoading,当需要去查询用户的时候再去执行findUserById,通过resultMap的定义将延迟加载执行配置起来。 延迟加载resultMap 使用association中的select指定延迟加载去执行的statement的id。

MyBatis 3 整合Spring3、SpringMVC

MyBatis整合Spring 开发环境: System:Windows WebBrowser:IE6+、Firefox3+ JavaEE Server:tomcat5.0.2.8、tomcat6 IDE:eclipse、MyEclipse 8 Database:MySQL 开发依赖库: JavaEE5、Spring 3.0.5、Mybatis 3.0.4、myBatis-spring-1.0、junit4.8.2 Email:hoojo_@https://www.sodocs.net/doc/9b1921069.html, Blog:https://www.sodocs.net/doc/9b1921069.html,/IBM_hoojo https://www.sodocs.net/doc/9b1921069.html,/ 1、首先新建一个WebProject 命名为MyBatisForSpring,新建项目时,使用JavaEE5 的lib库。然后手动添加需要的jar包,所需jar包如下: 2

contextConfigLocation classpath*:applicationContext-*.xml dispatcher org.springframework.web.servlet.DispatcherServl et contextConfigLocation /WEB-INF/dispatcher.xml 1 dispatcher *.do characterEncodingFilter org.springframework.web.filter.CharacterEncoding Filter encoding UTF-8 characterEncodingFilter /* 3

mybatis教程从入门到精通

mybatis教程从入门到精通 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到sessionfactory. 2. 由sessionfactory 产生session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为MyBaits 的dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将mybatis- 3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到web工程的lib 目录. 3. 创建mysql 测试数据库和用户表,注意,这里采用的是utf-8 编码 创建用户表,并插入一条测试数据 程序代码程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为src_user,test_src, 用如下方式建立,鼠标右键点击JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下:

springmvc+spring+mybatis整合

springmvc+spring+mybatis整合 首先在整合这个框架的时候,想想其一般的步骤是怎样的,先有个步骤之后,不至于在后面的搞混了,这样在整合的时候也比较清晰些。 然后我们就细细的一步一步来整合。 1 创建一个Web项目。 2 导入Mybatis3、Spring4、SpringMVC4、连接数据库(我使用的数据库是mysql)的jar包。 我所用的包: spring-websocket-4.2.0.RELEASE.jar

3 创建Mybatis3、Spring4、SpringMVC4、连接数据库的配置文件。 4 配置web.xml 1 2 7 8 9 10contextConfigLocation 11 12/WEB-INF/classes/applicationContext.xml, 13 14 15 16 17 18 19 20log4jConfigLocation 21/WEB-INF/log4j.xml 22 23 24 25log4jRefreshInterval 2660000 27

mybatis-3-mapper

>

Spring+SpringMVC+MyBatis的整合

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) 最近在学习Spring+SpringMVC+MyBatis的整合。以下是参考网上的资料自己实践操作的详细步骤。 1、基本概念 1.1、Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 1.2、SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在 Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 1.3、MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由 apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis 是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和 Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口 和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

mybatis实战教程之四:实现关联数据的查询

mybatis实战教程(mybatis in action)之四:实现关联数据的查询 有了前面几章的基础,对一些简单的应用是可以处理的,但在实际项目中,经常是关联表的查询,比如最常见到的多对一,一对多等。这些查询是如何处理的呢,这一讲就讲这个问题。我们首先创建一个Article 这个表,并初始化数据. 程序代码 Drop TABLE IF EXISTS `article`; Create TABLE `article` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL, `title` varchar(100) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- ---------------------------- -- 添加几条测试数据 -- ---------------------------- Insert INTO `article` VALUES ('1', '1', 'test_title', 'test_content'); Insert INTO `article` VALUES ('2', '1', 'test_title_2', 'test_content_2'); Insert INTO `article` VALUES ('3', '1', 'test_title_3', 'test_content_3'); Insert INTO `article` VALUES ('4', '1', 'test_title_4', 'test_content_4'); 你应该发现了,这几个文章对应的userid都是1,所以需要用户表user里面有id=1的数据。可以修改成满足自己条件的数据.按照orm的规则,表已经创建了,那么肯定需要一个对象与之对应,所以我们增加一个Article 的class 程序代码 package com.yihaomen.mybatis.model;

SSM基础框架搭建(SpringMVC+Spring+Mybatis)

SSM基础框架搭建(SpringMVC+Spring+Mybatis) SSM框架简述 到现在用了SSM框架也有一段时间了,对于基础的使用已经基本习惯,这段时间也多多少少搭了很多遍基础框架,当然每一次的搭建都会比原先搭建的东西更多些,也会更加完善,我相信大家也会从搭建的过程中成长去学到很多东西,SSM框架网上也有很多教程,不过我相信每个编写以及阅读的人总会从相似的文章中学到不同的东西. SSM框架基础概念 Spring 这里不得不说Spring非常强大,Spring拥有这IOC(控制反转,依赖注入)和AOP(面向切面编程)这两个强大的功能,这两个功能使框架足够的解耦,通过工厂模式和bean的配置完成对象的注入并且由bean生成的对象是单例的 SpringMVC SpringMVC分离了控制器,验证器,Servlet分发器,模型对象等 Mybatis Mybatis解除了程序与代码的耦合度,在一定程度上简化了sql的管理,只需要在XML中进行相应SQL的编写即可,Mybatis提供了相应的映射,配置起来更加容易 SSM基础框架搭建 这里就直接介绍SSM框架如何搭建了,至于环境配置和MAVEN项目的创建可以参考我的博客,也可以参考环境搭建,MAVEN项目搭建,下面开始搭建的教程,可能是对于上文链接博客的整合的完善与一些细微错误的纠正吧。 引入相关的JRA包 4.0.2.RELEASE 3.2.6 1.7.7 1.2.17 junit junit 4.11

Mybatis3.1实战

Mybatis3.1实战 1、前言 (2) 2、什么是mybatis (2) 3、Mybatis入门实例 (2) 4、Mybatis中的增、删、改、查 (8) 5、Mybatis新特性介绍 (10) 6、mybatis-config.xml中的元素介绍 (11) 7、xml映射文件及用法 (18) 8、Mybatis参数传递 (20) 9、基于注解的sql语句 (21) 10、动态sql语句 (22) 11、mybatis中的一对多、一对一、多对多 (24) 12、自定义类型处理器 (28) 13、Spring3.1+springmvc+mybatis3.1集成 (31) 备注 (40) Like模糊查询 (40) 排序 (40) if元素中的条件语句 (40)

1、前言 随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis。相信很多朋友以前看过ibatis2.x,对ibatis2.x也比较熟悉,随着技术的发展,我们必须跟得上技术发展的步伐,不能永远停留在原来的技术上而不做进一步学习。由于在我的一个新项目中采用了mybatis,为此我发了几天来学习了mybatis,相对hibernate来说,本人感觉mybatis相对来说更加简单,特别是熟悉sql 语句的朋友们,你在采用mybatis时,你会觉得跟传统的jdbc方式来操作数据库没什么差别,只是mybatis帮你做了很多原来你在用jdbc来实现时的很多工作。我们来看看mybatis包含了哪些新特性。 Mybatis实现了接口绑定,使用更加方便 对象关系映射的改进,效率更高 MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。 在本学习教程中,全方位介绍了mybatis中的各种特性,里面的实例都是采用比较简单的实例来实现,对于有些没有介绍到的特性,大家可以参考官方文档。本教程采用的是mybatis最新的版本mybatis3.1,并结合了maven来写这个教程,所以大家需要对maven有所了解。 2、什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs (Plan Old Java Objects,普通的Java对象)映射成数据库中的记录。 3、Mybatis入门实例 在maven中加入mybatis、mysql、junit的依赖包: junit junit 4.10 test org.mybatis mybatis 3.1.1

Mybatis-3.3.0官方文档-中文.pdf

来获取。

Copyright ? 2010–2015 https://www.sodocs.net/doc/9b1921069.html,. All rights reserved.

XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务范围和控制方式的事务管理器(TransactionManager)。XML 配置文件的详细内容后面再探讨,这里先给出一个简单的示例: 当然,还有很多可以在XML 文件中进行配置,上面的示例指出的则是最关键的部分。要注意 XML 头部的声明,用来验证 XML 文档正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的XML 文件包含了 SQL 代码和映射定义信息)。 不使用 XML 构建 SqlSessionFactory 如果你更愿意直接从 Java 程序而不是 XML 文件中创建 configuration,或者创建你自己的 configuration 构建器,MyBatis 也提供了完整的配置类,提供所有和 XML 文件相同功能的配置项。

注意该例中,configuration 添加了一个映射器类(mapper class)。映射器类是 Java 类,它们包含 SQL 映射语句的注解从而避免了 XML 文件的依赖。不过,由于 Java 注解的一些限制加之某些 MyBatis 映射的复杂性,XML 映射对于大多数高级映射(比如:嵌套Join 映射)来说仍然是必须的。有鉴于此,如果存在一个对等的 XML 配置文件的话,MyBatis 会自动查找并加载它(这种情况下,BlogMapper.xml 将会基于类路径和 BlogMapper.class 的类名被加载进来)。具体细节稍后讨论。 从 SqlSessionFactory 中获取 SqlSession 既然有了 SqlSessionFactory ,顾名思义,我们就可以从中获得 SqlSession 的实例了。SqlSession 完全包含了面向数据库执行SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。例如: 诚然这种方式能够正常工作,并且对于使用旧版本 MyBatis 的用户来说也比较熟悉,不过现在有了一种更直白的方式。使用对于给定语句能够合理描述参数和返回值的接口(比如说BlogMapper.class),你现在不但可以执行更清晰和类型安全的代码,而且还不用担心易错的字符串字面值以及强制类型转换。 例如: 现在我们来探究一下这里到底是怎么执行的。

SpringMvc与Mybatis整合

SpringMvc与Mybatis整合1.目的 学习SpringMvc与Mybatis怎样整合在一起。 2.环境准备 1)jdk版本:jdk1.7或jdk1.8 2)IDE:eclipse 3)Tomcat:Apache Tomcat v7.0 4)数据库:mysql及navicat for mysql 3.整合 3.1.新建一个web项目

注意:这里选择Dynamic Web Module 2.5 ,因为2.5是主流,默认在eclipse的WebContent \WEB-INF\目录下创建web.xml的,而3.0则默认没有web.xml文件 3.2.添加整合所需的jar包 注:所有的包已经放到文件jar里面了

3.3.web.xml配置 3.3.1.代码如下: SpringMvc-Mybatis index.jsp contextConfigLocation classpath:applicationContext.xml encodingFilter org.springframework.web.filter.CharacterEncodingFilter true encoding UTF-8 encodingFilter /* org.springframework.web.context.ContextLoaderListene r

mybatis入门教程(一)(超简单)

mybatis 第一天mybatis的基础知识 课程安排: mybatis和springmvc通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理(掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) 第二天:高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程 1对原生态jdbc程序中问题总结 1.1环境 java环境:jdk1.7.0_72 eclipse:indigo mysql:5.1 1.2创建mysql数据

sql_table.sql:记录表结构 sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3jdbc程序 使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(mysql5.1) 上边的是mysql驱动。 下边的是oracle的驱动。 程序代码: 1.4问题总结 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。 设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。 3、向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。设想:将sql语句及占位符号和参数全部配置在xml中。

相关主题