MyBatis框架.ppt_第1页
MyBatis框架.ppt_第2页
MyBatis框架.ppt_第3页
MyBatis框架.ppt_第4页
MyBatis框架.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

尚学堂手把手教程 授课 王勇 版权所有 尚学堂科技 Struts Hibernate Spring Mybatis框架 Web开发流行架构 课程目标 Mybatis概述Mybatis环境搭建和测试使用Mybatis进行CURD操作Mybatis的关联映射SpringMVC Mybatis框架集成与Spring框架的集成与SpringMVC框架集成 Mybatis概述 ibatis本是apache的一个开源项目 2010年这个项目由apachesoftwarefoundation迁移到了googlecode 并且改名为mybatis MyBatis是支持普通SQL查询 存储过程和高级映射的优秀持久层框架 MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索 MyBatis使用简单的XML或注解用于配置和原始映射 将接口和Java的POJOs PlanOldJavaObjects 普通的Java对象 映射成数据库中的记录 Mybatis的特点 和ORM框架 如Hibernate 将数据库表直接映射为Java对象相比 iBatis是将SQL语句映射为Java对象 相对于全自动SQL的Hibernate iBatis允许你对SQL有完全控制权 可以视为半自动的数据访问工具 iBatis的最大优点是简便 轻量级 仅需iBatis的一个jar和数据库的驱动即可运行 而且使用iBatis仅需掌握SQL和XML的用法即可 而不像Hibernate那样需要配置对象间的关系 学习iBatis的过程要比Hibernate快很多 在项目中 若人员水平不大一致时 使用iBatis代替Hibernate作为数据访问工具可以有效提升开发效率 ORM的思想 无论是用过的hibernate jpa还是mybatis你都可以法相他们有一个共同点 1 从配置文件 通常是XML配置文件中 得到sessionfactory 2 由sessionfactory产生session3 在session中完成对数据的增删改查和事务提交等 4 在用完之后关闭session 5 在java对象和数据库之间有做mapping的配置文件 也通常是xml文件 Mybatis环境的搭建 mybatis的开发环境搭建准备 Myeclipse8 5 mysql5 1 jdk1 7 mybatis3 2 0 jar包 在Myeclipse下创建JavaProject 并引入mybatis3 2 0 jar和mysql connector java 5 1 22 bin jar包在mysql中创建好库 表 userinfo 创建对应的实体类和数据库操作类的对应包结构配置mybatis在src下创建mybatis的配置文件 mybatis config xml创建对应的实体类和映射文件 Userinfo java和Userinfo xml Mybatis配置文件 mybatis config xml 这里配置实体类 这里配置事务类型 这里配置数据源 这里配置映射文件 映射文件配置 Userinfo xml select fromuserinfowhereid id 这里是主要是定义各种SQL语句 以及这些语句的参数 以及要返回的类型等 Mybatis实现的步骤 环境搭建测试 读取配置文件Readerreader Resources getResourceAsReader mybatis config xml 创建SqlSessionFactorySqlSessionFactorysessionFactory newSqlSessionFactoryBuilder build reader 创建SessionSqlSessionsession sessionFactory openSession 使用SqlSession实例来直接执行已映射的SQL语句Userinfouser session selectOne com sxt mybatis UserMapper getUserByID 1 关闭Session 使用Mybatis实现基本的CURD操作 接口方式编程 跟SqlSession直接直接执行映射文件的SQL语句相比接口方式更好 更安全 更简单一些 是Mybatis的通用操作方式 下面以根据id获取单个对象为例 创建包 com sxt mybatis UserMapper在包下定义IUserDao接口 并声明publicUserinfogetUserByID intid 方法 注意 接口中声明的方法一定要映射文件Userinfo xml中配置的对应 接口的package定义必须和映射文件中的namespace一致 否则就会出错 从映射中获取接口实例 IUserDaoudao session getMapper IUserDao class 调用方法 Userinfouser udao getUserByID 1 查询并返回列表List 1 在Userinfo xml中定义返回数据类型resultMap 注意不是resultType 这个resultMap是自己配置的 配置查询的SQL语句 无参 select fromuserinfo 查询并返回列表List 2 配置查询的SQL语句 带参 select fromuserinfowherenamelike name 在IUserDao中添加getUsers方法 publicListgetUsers publicListgetUsers Stringname 测试运行 用mybatis增加数据1 在IUserDao中添加方法 publicvoidaddUser Userinfo 在Userinfo xml中添加SQL语句 insertintouserinfo name age address values name age address 其中id和parameterType分别与IUserDao接口中的addUser方法的名字和参数类型一致 以 name 的形式引用Userinfo参数的name属性 MyBatis将使用反射读取Userinfo参数的此属性 name 中name大小写敏感 useGeneratedKeys设置为 true 表明要MyBatis获取由数据库自动生成的主键 keyProperty id 指定把获取到的主键值注入到Userinfo的id属性 用mybatis增加数据2 Mybatis实现增 删 改都必须提交事务 否则不会写入到数据库 udao addUser user mit 用Mybatis修改和删除数据 方式与添加类似 在接口中添加对应的修改和删除方法 映射文件中添加和updateuserinfosetname name age age address address whereid id deletefromuserinfowhereid id 执行时需注意 修改是需要先调用getUserByID id 方法得到持久态的数据 然后进行修改 Mybatis中的关联关系配置 以User和City为例 Many to One配置实体类 在Many方实体类User中添加City实体类为其属性 增加getter setter方法 映射文件配置1 修改Many方映射文件User xml中的select语句的resultMap 引入association来描述many to one关系 映射文件配置2 如果在City xml中有已经定义好的City对应的resultMap其id clist 以上代码还可以这样配置 Mybatis中的关联关系配置 以User和City为例 Many to One测试 获取和用户关联的城市信息selectc u from user u citycwhereu cid c cid 注意 这里是内连接方式 Mybatis中的关联关系配置 City与User One to Many配置实体类 在One方实体类City中添加List属性users 添加对应的getter setter方法 映射文件配置 修改One方映射文件City xml中的select语句的resultMap 引入collection来描述one to many关系 Mybatis中的关联关系配置 以City和User为例 One to Many测试 获取城市下所有用户信息selectu c fromcityc user uwhereu cid c cidandc cid cid 应注意的问题所有的select语句都是关联查询select的查询结果类型为resultMap而非resultType Spring Mybatis框架集成1 添加Spring Mybatis框架的相关类库mybatis spring 1 1 1 jar配置applicationContext xml配置dataSource Spring Mybatis框架集成2 配置sqlSessionFactory注意 在mybatis config xml中无需再配置和 Spring Mybatis框架集成3 配置Mapper接口Dao以上配置的重点就是org mybatis spring SqlSessionFactoryBean与org mybatis spring mapper MapperFactoryBean实现了spring的接口并产生对应对象 Spring Mybatis框架集成4 编写业务接口及业务类 实现userDao的注入 编码及配置和ssh一样编写测试类进行测试 ApplicationContextctx newClassPathXmlApplicationContext applicationContext xml IUserBizubiz IUserBiz ctx getBean userBiz SpringMVC Mybatis集成 1 整合环境操作系统 WinXPIDE MyEclipse8 5数据库 mysql框架spring3 0 mybatis3 1 1在myeclipse8 5下面创建WebProject 引入相关类库添加Spring框架 选择Spring3 0版本 引入如下类库前4个类库 Spring3 0AOPLib Spring3 0CoreLib Spring3 0PersistenceCoreLib 和Spring3 0PersistenceJDBCLib Spring3 0WebLib 添加Mybatis类库 mybatis 3 1 1 jarMsql驱动jar包用于mybatis和spring集成的 mybatis spring 1 1 1 jar SpringMVC Mybatis集成 2 在web xml中配置spring mvc的核心Servlet以及乱码过滤器 内容如下 springmvcorg springframework web servlet DispatcherServletcontextConfigLocationclasspath applicationContext xml WEB INF spring servlet xml1springmvc do SpringMVC Mybatis集成 3 Web xml中乱码过滤器配置如下 Post方式乱码解决方案 CharacterEncodingFilterorg springframework web filter CharacterEncodingFilterencodinggbkCharacterEncodingFilter SpringMVC Mybatis集成 4 在WEB INF目录下创建SpringMVC的配置 spring servlet xmlXml的头部略 见备注 SpringMVC Mybatis集成 5 配置Spring配置文件applicationContext xml 1 头文件略 见备注配置dataSource 如下 SpringMVC Mybatis集成 6 配置sqlSessionFactory配置事务开启Spring的Annotation注解处理器 SpringMVC Mybatis集成 7 在src下创建mybatis的配置文件mybatis config xml SpringMVC Mybatis集成 8 在com sxt entity包创建实体类和映射文件 见P 7 实体类User 略映射文件User xml 略创建操作接口com sxt dao IUserDao 见P 9在applicationContext xml中对Dao进行配置 SpringMVC Mybatis集成 9 编写业务接口和实现类 Service ubiz TransactionalpublicclassUserBizImplimplementsIUserBiz ResourceIUserDaouserDao 编写UserControl Contr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论