mybatis实际上是一个更多关注sql语句的框架,他的出现是想让开发者更简单的去操作数据库。

与hibernate相比较,hibernate更多的是去sql化,虽然hibernate也可以本地sql执行,hibernate更多的是关注与hql的编写和对象映射的配置,

只要配置完了,hibernate有封装好的函数可以帮你执行操作数据库,当然hibernate也是靠生产sql语句去实现操作数据库的,值得注意的是

hibernate可以很容易的去适应不同类别的数据库,只要配置更改一下就可以针对不同的数据库生产不一样的sql语句,hibernate的难点可能集中

于单双边和几对几po对象的配置问题。所以说一定程度上来说hibernate掌握的门槛可能比mybatis要高一些。

回过头来,mybatis相对Hibernate“O/R”而言,mybatis是一种“Sql Mapping”的ORM实现。

你只需要再mybatis的对象映射文件xml中写好自己的sql语句,并同时配置好入参和返回值类型,那么mybatis就可以帮你po对象存到数据库或者

将数据库的数据映射到对象来,那么在使用mybatis的时候其实主要工作就是写sql了,然后就是一些配置规则的细枝末节。

今天我们要搭建mybatis,并顺便整合到我们spring项目中,spring项目就是我之前的博客中《springMvc+hibernate的web application的构建》所构建成功的项目。

1mybatis当然少不了响应的jar包,3.2.7是我下载的jar包,当然不是最新的,最新我找了很久,有的是因为jar下载的链接卡住了,有的是因为csdn上下载的积分和c币用光了。

下图是我下载的jar包。

因为咱们这个spring项目是web项目,直接丢到webContent下的lib里面就好,既可以在application中的main函数执行,也可以再web服务器中运行,就很舒服。

然后在项目的src下放入我们的配置文件,配置文件如下:

配置文件的位置如下:

可以看到分为两部分,一部分是关于连接数据库的,另一部分是关于po配置的xml文件。

当然mybatis也需要jdbc.driver的,然后po的xml会稍后展示。

现在我们需要做的是建立好数据库的表,以及po类的建立,以及po对应下xml配置问题。

我们一个个来看下:

那么,现在大家就可以看见了,通过参数类型的定义,返回值类型的定义,我们在其他地方调用这个sql语句的时候就

可以实现我们的数据库操作了。

不过在执行这个操作的时候,我们应该先初始化好mybatis的配置文件,以便加载mybatis。

这个时候我们的下面代码就可以做到了:

当我们初始化好后,就可以做我们想要的操作了。

那新的问题又来了,我们如何将这个mybatis融入到我们的项目中呢?

其实方法有两种,

1因为我们这个是spring项目,所以可以再spring的配置文件中加入这个MybatisOfSpringUtil类,之后需要的时候就可以通过

spring的上下文对象getBean方法获得了。

2也就是我使用的方式,从上面的这个方法可以看到sqlSessionFactory这个变量是静态的,且实现了单例模式的。直接在要使用的

地方调用MybatisOfSpringUtil.getSessionFactory()就好。不需要将这个类注入到spring中。

其实两种方法都是可以的,一个是靠注入spring项目的时候初始化mybatis的配置文件,一个是靠第一次调用MybatisOfSpringUtil.getSessionFactory()

的时候去初始化mybatis配置文件。

当我们初始化好后,就可以在需要的时候调用了,也就意味在自己的项目中加好了mybatis框架。

我的调用是方式是:

当然这款代码是dao层的代码。有了这块代码,其他层就可以调用了,从service层到MVC的controller层。

现在我们看看是否能运行成功。

现在我先再数据库加一条记录,而我们的sql语句是根据主键来获取对象。

所以参数为1的时候能查到数据库数据,其他的时候就不能查询到数据库数据。

controller层我判断查询的对象是否为null,来分别返回不同的页面。

controller层代码是:

那么id参数为1的时候coffe对象就不为null,其他的时候就为null。

我们再观察页面就知道mybatis是否起作用了。

我们先访问: http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=1

然后再访问:http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=6

ok,没问题。说明mybatis就搭建成功了。

有什么不明白的可以留言,我有空的时候会回来回复,也欢迎大家批评指正。

see you lala。。。

mybatis的搭建和注入spring的方式的更多相关文章

  1. 解决mybatis拦截器无法注入spring bean的问题

    公司要整合rabbitmq与mybatis拦截器做一个数据同步功能. 整合过程中大部分环节都没什么问题,就是遇到了mybatis拦截器 @Intercepts(@Signature(type = Ex ...

  2. Mybatis 学习笔记1 不整合Spring的方式使用mybatis

    两种方式都包含了: package com.test.mybatis; import java.util.List; import org.apache.ibatis.io.Resources; im ...

  3. spring练习,使用Eclipse搭建的Spring开发环境,属性注入通过构造方法方式实现,模拟用户的正常登录。

    相关 知识 >>> 相关 练习 >>> 实现要求: 使用Eclipse搭建的Spring开发环境,属性注入通过构造方法方式实现,模拟用户的正常登录.要求如下: 通过 ...

  4. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  5. 0028ssm环境搭建(springmvc+spring+mybatis)

    spring整合springmvc和mybatis主要分为如下几个步骤: 1.spring环境搭建 2.springmvc环境搭建 3.spring整合springmvc 4.spring整合myba ...

  6. Spring+Mybatis+Mysql搭建分布式数据库访问框架

    一.前言 用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架.如果数据量很大,一个MYSQL库存储数据访问效率很低,往往会采用分库存储管理的方式.本文讲述如 ...

  7. spring 整合 mybatis 中数据源的几种配置方式

    因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapp ...

  8. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)

    在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...

  9. Spring(二十三):Spring自动注入的实现方式

    注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解包含:Autowrired/Resource/Qualifier/Service/Controller/Repository/C ...

随机推荐

  1. 团队作业9——测试与发布(Beta版本)

    Beta版本测试报告 一bug汇总 计时没有显示即倒计时,难度不同的功能没有实现(已修复) 没有导入试卷和错题功能(不打算修复) 前台管理功能(部分修复) 界面美观问题(没有修复也不打算修复) 二.场 ...

  2. 201521123038 《Java程序设计》 第八周学习总结

    201521123038 <Java程序设计> 第八周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 从集合里面获取对象时必须进行强制类 ...

  3. 201521123037 《Java程序设计》第3周学习总结

    1. 本周学习总结 链接:http://naotu.baidu.com/file/026a646bb4031d4238accc69cdf53272 2. 书面作业 1. 代码阅读 public cla ...

  4. 201521123006 《java程序设计》 第13周学习总结

    1. 本周学习总结 1.以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.j ...

  5. 201521123064 《Java程序设计》第12周学习总结

    本次作业参考文件 正则表达式参考资料 1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. ① 标准输入输出流(字节流):标准输入流 System.in,标准输出流 ...

  6. 201521123062《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synch ...

  7. 201521123001 《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 答: 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需 ...

  8. windows 2008 R2操作系统上使用iis服务运行php和mysql数据库的网站遇到的验证码不显示问题?

    1,本地运行正常,路径没问题. 2,GD2.dll开启 3,IIS服务正常开启,并启用父路径为True 4,检查是否IIS服务中FSO权限问题 开始 -> 程序 -> 管理工具 -> ...

  9. python之进程----Queue

    一.Queue是通过multiprocessing使用 from multiprocessing import Process,Queue import time import random impo ...

  10. Intellij idea 断点调试

    前言 之前使用Intellij Idea断点调试都是极其简单的,都是下一步下一步下一步这样子-..还有最坑爹的以为:IDEA只能调试一次.调试完就要重启Tomcat服务器-..因此花了大量的冤枉时间- ...