Mybatis读取配置文件

文章目录

        • 一、Mybatis读取配置文件过程
        • 二、代码实例
        • 三、总结

一、Mybatis读取配置文件过程
  1. 首先,Mybatis会读取配置文件mybatis-config.xml。这个配置文件包含了MyBatis的全局配置信息,例如数据库连接信息、类型处理器、映射器等。

  2. Mybatis解析mybatis-config.xml文件,获取配置信息。它使用XML解析器来解析配置文件,将配置信息转换为内部的数据结构。

  3. 一旦配置文件被解析,Mybatis就会初始化一个SqlSessionFactory对象。SqlSessionFactory是Mybatis的核心对象,它用于创建SqlSession对象。

  4. SqlSessionFactory会根据配置文件中的数据源信息,创建一个数据库连接池,并配置一些连接池的属性,例如最大连接数,最小空闲连接数等。

  5. SqlSessionFactory还会解析配置文件中的类型处理器和映射器信息。类型处理器用于处理Java对象和数据库之间数据的转换,映射器用于定义SQL语句和Java方法之间的映射关系。

  6. SqlSessionFactory一旦被创建,就可以通过它来获取SqlSession对象。SqlSession对象是Mybatis的核心会话对象,它提供了执行SQL语句和管理事务的方法。

总结起来,MyBatis的配置文件包含了全局配置信息和SQL映射信息,MyBatis通过解析配置文件来获取这些信息,并根据配置信息初始化SqlSessionFactory。然后,通过SqlSessionFactory获取SqlSession对象,用于执行SQL语句和管理事务。
需要注意的是,MyBatis还支持注解方式来配置和映射SQL语句,这样就不需要使用XML配置文件了。在注解方式中,可以使用@MapperScan注解来扫描Mapper接口,并自动注册到SqlSessionFactory中。这样就可以直接使用注解方式来执行SQL语句,而无需编写XML映射文件。

二、代码实例
  1. 假设有一个名为User的Java类,对应数据库中的user表。使用MyBatis来执行查询操作,并且使用XML配置文件来定义SQL语句和映射关系。

  
    
      
      
        
        
        
        
      
    
  
  
    
  

以上配置中,指定了数据库连接信息,包括驱动、URL、用户名和密码。同时,也指定了映射器配置,其中UserMapper.xml是将在下一步创建的映射文件。


2. 创建一个UserMapper.xml映射文件,其中定义了SQL语句和结果映射关系。假设映射文件内容如下:


  

在以上映射文件中,定义了一个名为getUserById的查询语句,它将根据给定的id参数从user表中查询一条记录。resultType属性指定了查询结果的Java对象类型。


3. 通过Mybatis来执行查询操作。首先创建一个SqlSessionFactory对象,代码如下:

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

在上述代码中,使用Resources.getResourceAsStream()方法加载配置文件,并使用SqlSessionFactoryBuilder类的build()方法创建SqlSessionFactory对象。


4. 有了SqlSessionFactory对象后,可以使用它来创建SqlSession对象,代码如下:

SqlSession sqlSession = sqlSessionFactory.openSession();

5.现在可以使用SqlSession对象执行SQL语句了。假设要执行getUserById查询语句,代码如下:
User user = sqlSession.selectOne("com.example.UserMapper.getUserById", 1);

在上述代码中,使用selectOne()方法执行查询语句,并指定了查询语句的唯一标识符和参数。


6.最后,记得关闭SqlSession对象,代码如下:

sqlSession.close();
三、总结

通过以上步骤,就完成了使用MyBatis执行查询操作的过程。MyBatis会根据配置文件中的信息,初始化数据库连接池和映射器,并根据映射文件中的配置,执行相应的SQL语句,并将结果映射为Java对象。

你可能感兴趣的:(mybatis)