绝对干货!深度剖析Mybatis3操作数据库,带给你不一样的认知体验

本文详细介绍了MyBatis3框架的使用,包括操作Oracle、MSSQL和MySQL数据库的CURD操作,以及SqlSessionFactoryBuilder、SqlSessionFactory和SqlSession的核心对象生命周期。通过实例展示了如何创建和配置SqlSessionFactory,以及如何利用MyBatis进行数据操作。同时,文章强调了对象生命周期管理和线程安全的重要性。
摘要由CSDN通过智能技术生成

本篇将和大家一起分享MyBatis 3框架,此框架的主要作用就是更加便携地操作数据库,比如将数据库返回的内容进行List或实体类的封装,将执行操作的SQL语句配置到XML文件中,这样做有利于代码的后期维护,使代码的分层更加明确。MyBatis 框架还具有优化查询效率的缓存等功能。那么在本篇中,大家应该会掌握如下内容:

  • 使用基于Eclipse的MyBatis插件执行CURD增删改查操作;
  • 使用MyBatis操作常用数据库Oracle、 MySQL、MsSQL;
  • MyBatis框架中核心对象的生命周期;
  • MyBatis结合ThreadLocal类进行CURD的封装。

深度剖析Mybatis操作数据库,颠覆你的认知,干货速来

 

MyBatis简介

为什么要使用MyBatis框架呢?举一个最简单的例子,在使用传统的JDBC代码时,需要写上必要的DAO层代码,在DAO层代码中将数据表中的数据封装到自定义的实体类中。这给代码的维护带来了问题。但MyBatis和Hibernate 解决了这样的问题,使用它们做查询时,可以自动地将数据表中的数据记录封装到实体或Map中,再将它们放入List中返回。这么常见的功能都可以由MyBatis 和Hibernate 自由方便地实现,可见,使用这两个框架开发应用软件会非常方便快捷。

MyBatis是一个持久化框架,它有不同的语言版本,比如.NET和Java都有MyBatis对应的类库;它有大多数ORM框架都具有的功能,比如程序员自定义的SQL语句、调用存储过程和一些高级的映射。但在这里需要说明的是,它是一种半自动化的ORM映射框架,所以使用方式和Hibernate有非常大的区别。它以SQL语句为映射基础,在使用MyBatis 框架时,可以将SQL语句灵活多变的特性融入项目开发中。

另外,如果使用MyBatis这个框架,还可以省略大多数的JDBC代码,因为它把常用的JDBC操作都进行了封装,可以加快开发效率。MyBatis可以使用XML或Annotations注解的方式将数据表中的记录映射成一个Map或Java POJO实体对象,这也是现在流行ORM的技术方向。比如Hibermate和大多数JPA规范实现者都可以使用Annotations注解的方式来设计程序。

MyBatis操作数据库的步骤

开门见山永远是快速学习一门技术最好的方式。

MyBatis框架的核心是SqlSessionFactory对象,从SqlSessionFactory类的名称来看,它是创建SqlSession对象的工厂。但SqISessionFactory对象的创建来自于SqlSessionFactoryBuilder类,也就是使用SqlSessionFactoryBuilder类创建SqlSessionFactory对象。

使用SqlSessionFactoryBuilder类创建SqlSessionFactory 对象的方式可以来自于一个XML配置文件,也可以来自于一个实例化的Configuration对象。

使用XML配置文件创建SqlSessionFactory对象

package test;
import java. io. IOException;
import java. io. InputStream;
import org .apache. ibatis. io.Resources;
import org. apache. ibatis. session. SqlSessionFactory;
import org. apache. ibatis.session.sqlSessionFactoryBuilder;
public class Test {
    public static void main(String[] args) {
         try {
             String resource = "mybatis-config. xml";
             InputStream inputStream = Resources . getResourceAsStream (resource) ;
             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder ()
                       . build (inputStream) ;
             System. out.println (sqlSessionFactory) ;
         } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace () ;
         }
     }
}																																																																																																				 

上述代码的主要作用就是取得SqlSessionFactory工厂对象。下面测试代码是否能正常创建SqlSessionFactory类的实例。

其中mybatis-config. xml配置文件连接数据库的内容如下。

<?xml version="1.0" encoding= "UTE-8" ?>
<! DOCTYPE configuration
PUBLIC "-/ /mybatis.org//DTD Config 3.0//EN"
"http://mybatis. org/dtd/mybatis-3-config .dtd">
<configuration>
<envi ronments default= "deve lopment">
<envi ronment id= "development ">
<transactionManager type= "JDBC" />
<dataSource type= "POOLED">
<property name= "driver"
value= "com. microsoft.sqlserver. jdbc. sQLServerDriver" />
<property name= "url"
value= "jdbe:sqlserver ://localhost:1079;databaseName=ghydb" />
<property name= "username" value="sa" />
<property name= "password" value="" />
</dataSource>
</envi ronment>
</envi ronments>
</configuration>

配置文件mybatis-config.xml 中主要定义的就是如何连接数据库,以及连接数据库所必备的username和password及url 等参数。

深度剖析Mybatis操作数据库,颠覆你的认知,干货速来

 

加入当时最新版的MyBatis框架的jar包,如下图所示。

深度剖析Mybatis操作数据库,颠覆你的认知,干货速来

 

运行程序后并没有出现异常,输出的信息如下图所示。

深度剖析Mybatis操作数据库,颠覆你的认知,干货速来

 

到此,SqlSessionFactory 对象成功地从XML配置文件中创建。

SqlSessionFactoryBuilder和SqlSessionFactory类的结构

SqlSessionFactoryBuilder类的架构:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值