zoukankan      html  css  js  c++  java
  • (原创)mybatis学习一,夯实基础

    一,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>
    View Code

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

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

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

  • 相关阅读:
    super关键字
    aspcms 留言 搜索
    aspcms标签
    随机添加一个Class,Class提前写好
    python实现进度条
    linux 下获取文件名的md5值
    linux下 批量压缩与批量解压
    linux下批量新建/删除 文件或目录
    python——pip导出导入安装包
    python Scrapy爬虫框架
  • 原文地址:https://www.cnblogs.com/ningheshutong/p/5775067.html
Copyright © 2011-2022 走看看