一,what?(是什么)

  MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的用于配置和原始映射XML或注解,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

二,why?(为什么)

  1.   另外一个持久层框架式hibernate,这个框架和hibernate框架有什么不一样的么?我在网上查找资料后,得出主要一下几点:
  2.   hibernate是将jdbc进一步封装,而mybatis是原生态的jdbc,从这一点来说,mybatis的效率会更高一点
  3.   mybaits相对来说上手容易一些
  4.   最重要的区别是什么呢,hibernate在查询的时候眉毛胡子一把抓,不管是不是需要的,都拿来,这对数据量很大的来说,可能会影响性能,而mybaits是取其需要的即可

  上面的对比还是比较浅薄的,更深层次的对比详见下面的知乎的连接连接回答 MyBatis和Hibernate相比,优势在哪里?

三,how?(怎么做)

  下面来介绍最最重要的一部分,就是怎么用。这个有一个教程写的很好,我在这就不在重复了,直接看连接

  mybatis学习总结

四,关于mybatisutils.class的联想,为mybatis和spring,springMVC融合做准备

对于mybatis来说,主要是获取SqlSessionFactory,然后来获取SqlSession,请看下面代码:

package org.app.test;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class mybatisUtils {
private static SqlSessionFactory ssf = null;
static {
String confpath = "conf.xml";
InputStream inputs;
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = mybatisUtils.class.getClassLoader()
.getResourceAsStream(confpath);
// inputs = Resources.getResourceAsStream(confpath);
ssf = new SqlSessionFactoryBuilder().build(is);
} public static SqlSession getSqlSession() {
return ssf.openSession();
} public static SqlSession getSqlSession(boolean autocommit){
return ssf.openSession(autocommit);
}
}

附件: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>
<properties resource="db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="${name}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/mapping/userMapper.xml" />
</mappers>
</configuration>

上面这段代码就是mybaits根据config文件来获取相关的数据库配置信息,那么有没有这样的一种类,可以接管mybatisutils.class这个类的功能,也就是说,如果接管了这个功能,并且能够生成SqlSession,那么是不是就可以融入到这个mybatis框架中了?

对,有这种类,这就是后来的spring和mybatis的融合,spring框架接管mybatisutils.class这样的类,而Srping框架中类名不叫mybatisutils.class,而是功能更加强大的SqlSessionDaoSupport类。

下一节,我们来学习:Spring和mybatis的融合

(原创)mybatis学习一,夯实基础的更多相关文章

  1. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  2. mybatis学习笔记之基础复习(3)

    mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...

  3. mybatis学习笔记之基础框架(2)

    mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足s ...

  4. MyBatis学习笔记(1) —— 基础知识

    mybatis 是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,mybatis 清除了几乎所有的jdbc代码和参数的手工设置及对结果集的检索封装.mybatis可以使用简单的xml和注解用于 ...

  5. (原创)mybatis学习二,spring和mybatis的融合

    mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...

  6. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...

  7. Mybatis学习---基础知识考核

    MyBatis 2.什么是MyBatis的接口绑定,有什么好处 接口映射就是在IBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定,    我们直接调用接口方法就可以,这样比起原来了Sql ...

  8. 【Todo】Mybatis学习-偏理论

    之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html  <SSM(SpringMVC+Spring+Myba ...

  9. mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

    文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...

随机推荐

  1. Android判断屏幕开关状态

    方法一:使用系统服务 PowerManager pm= (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); if(!pm. ...

  2. UIView上的按钮跳转到一个控制器UIViewController上去

    我现在有一个UIControllerView 里面addView了一个UIView,我在点击UIView的时候转到另一个UIControllerView,按上面的导航条上面的返回按钮返回第一个UICo ...

  3. linux下 yum 安装mysql和卸载

    1.查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 2.查看有没有安装包: yum list mysql* 3.安装mysql客户端 ...

  4. 关于input全选反选恶心的异常情况

    上一篇讲到:第一次点击全选按钮input显示对勾,第二次则不显示,需要用prop来添加checked属性. 但是用prop会出现一个问题,对勾显示,而checked属性不会被添加(比如:$(" ...

  5. 浅谈JS中的继承

    前言 JS 是没有继承的,不过可以曲线救国,利用构造函数.原型等方法实现继承的功能. var o=new Object(); 其实用构造函数实例化一个对象,就是继承,这里可以使用Object中的所有属 ...

  6. 【转】JAVA 8 日期/时间(Date Time)API指南

    前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改. 原文链接: journaldev 翻译: ImportNew.com - ...

  7. Windows Phone 8.0 Updates 2 and 3模拟器更新

    2014年元旦后,微软发布了Windows Phone 8 Updates 2 and 3的模拟器更新,即系统版本号分别是8.0.10322和 8.0.10512.其中,在Update 3 Emula ...

  8. Tomcat:使用JMX监管Tomcat的几种方式

    Tomcat使用JMX管理方式,在Tomcat的自带应用manager就是使用了JMX方式来管理Tomcat,以此完成Web应用的动态部署.启动.停止. 然而manager应用是一种本地使用JMX接口 ...

  9. Spring CharacterEncodingFilter

    <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> <filter-name>springUtf8Encoding</fi ...

  10. 今天说一下 tablesample 这个东西

    TableSample 平时用得少,基本上就是用于表里面抽样数据来看的. 用法如下 SELECT * FROM tbname TABLESAMPLE SYSTEM (N PERCENT/M Rows) ...