MyBatis的学习与总结-第一篇

首先,在是使用Mybatis时,需要了解他的一些特点:

1.他是工作与持久层框架,

2.简单易学,灵活

3.能解除sql与程序代码的耦合

4.提供映射标签

5.提供对象关系映射标签

f.提供xml标签

这回就主要总结前两个特点

首先,创建一个maven项目,并通过依赖将Mybaits的Jar包导入其中,这样就可以在后续使用Mybatis的东西。接着,既然是简单易学,那就通过JDBC进行一次对比,当在使用JDBC时,我们连接数据库步骤大致可分为

1.获取驱动 com.mysql.jdbc.Driver 

2.设置连接 jdbc:mysql://localhost:3306/coco

3.设置用户名

4.设置密码

5.获取连接

6.声明对象

7.获取结果集

8.关闭

可以看到十分繁琐,并且当中还要穿插一些抛异常操作,代码量很大,且最后的关闭有时被忘记,也会操作内存泄漏的事情,所以Mybatis则将这些步骤封装起来,我们只需要配置xml文件即可。

//SqlMapConfig.xml






    
        
            
            
                
                
                
                
            
        
    

    
    
        
    

1.首先,先说第一个要点:就是需要把所有便签都配置 configuration 标签下,这是作为一个中控标签存在,也只有在这里面配置才会令其有用。

2.接着是 environments 标签,从英文意思就可以了解到,这是环境的意思,那么也就对应JDBC中获取运行时数据库驱动,信息等的创建,并且既然是以S结尾,那么也就意味这里面可以配置多个 environment ;而 default 则就是确定在这些"环境"中那个环境才是被调用的;那么 environment 中 id 标签也就是为这些命名的表示,还有一点,既然要把这些环境分开标识,也是有其中的意义,当我们在去公司开发,我们需要划分清开发环境,测试环境,生产环境,因为关乎数据存储的位置,这也是一点比较需要记住的地方。

3.然后是 transactionManager 这个是事务管理标签,type 则是指明事务管理的对象

4.最后就是配置的数据源,在数据源中,需要先声明是 type 是指明在这个连接信息时,是使用什么类型的,一般为三种,

    a.POOLED:使用Mybatis自带的数据库连接池来管理数据库连接

    b.UNPOOLED:不使用任何数据库连接池来管理数据库连接

    c.JNDI:jndi形式使用数据库连接、主要用于项目正常使用的时候

一般默认使用POOLED就好;

接着配置连接信息,这点在与jdbc不变,老四样,但是有点不同的,需要通过在 property 标签中配置,name 是指连接key值,value 则是指连接的value值,这样,连接的信息就配置完成了。

接着,就开始解耦的部分。

Mybatis解耦是通过xml文件,在xml文件,通过配置sql语句,就可以直接脱离Java代码,来编写SQL

//User.xml





    

首先是主要的标签 mapper 跟上述一样,只能在这里面写的配置才能起到作用,接着下一级标签,根据功能分为四类,其实在本质也是对应的sql语句中的增删改查,select,update,delete,insert,这四个标签决定着sql语句要发挥的作用,此次就以select为例,在select标签中,可以看到有着三大样,也是比较常用的,第一个id,他可以和mapper 中的 namespace 组成联合key值,这样也就能确定唯一一个的sql语句,然后 parameterType 标签,他决定这参数的类型,但是需要注意的这里传的引用数据类型,所以当使用int,需要在这里面写的是Integer这个包装类,再接着是resultType,这个是返回值类型,使用方法和上面一个一样,最后,就是sql语句了,当需要使用参数时,使用和SpringJdbc类似,都是在需要参数位置,使用占位符,但是Mybatis不同的是参数是直接写在sql语句中,只不过需要通过 #{ //parameter } 将参数引起来,这样,在我们传过来参数以后,Mybatis就会自动的将参数放置在对应位置。但是有一点需要注意的是,当传入是一个实体类时,在这里面放入是实体类中的成员变量名。

测试:

 @Test
    public void testMyBatis() throws IOException {
        //获取加载mybatis配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //使用SqlSessionFactoryBuilder 来创建一个SqlSessionFactory
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获取到SqlSession 进行调取api
        SqlSession sqlSession = build.openSession();
        //第一种 调用原生API
        UserPojo admin = sqlSession.selectOne("test.selectById", "admin");
        System.out.println(list);
    }

首先,需要做的一件事就是把上面写好User.xml加载进SqlMapConfig.xml,方法很简单,就是加入 mappers 标签即可,接着是读sql连接信息的配置就是SqlMapConfig.xml,在测试方法中,通过getResourcesAsStream(); 就能获取到这样一个输入流,然后就是实例化 SqlSessionFactoryBuilder().build(); 来创建一个工厂,然后通过工厂,创建一个 sqlSesstion,最后就可以通过 sqlSesstion来调用Mybatis的原生API了。

你可能感兴趣的:(学习总结)