您的位置:

Mybatisxml格式详解

Mybatis是一种持久化框架,它将业务Java对象和关系型数据库中的数据建立映射关系,并通过使用Java的反射机制将对象持久化到数据库中。Mybatis的配置文件有两种格式,分别是XML和注解两种方式。本文将着重介绍Mybatis XML配置文件的格式和用法。

一、Mybatis XML配置文件

在使用Mybatis的时候,最核心的就是Mybatis的配置文件,配置文件的格式为XML。Mybatis XML配置文件的名称一般为mybatis-config.xml,我们可以将这个文件放在类路径下,或者指定一个路径进行加载。

配置文件中,我们可以配置数据源、事务管理器、映射器、缓存、插件等等,以下是一个Mybatis配置文件的示例:




    
   
        
    
            
     
            
     
                
      
                
      
                
      
                
      
            
     
        
    
    
   

    
   
        
    
    
   

  

上面的配置文件中,我们定义了数据库连接相关信息,以及一个mapper资源文件。mapper资源文件定义了一些查询语句,用来实现对数据库的操作。

二、Mybatis的XML模糊查询

Mybatis支持模糊查询,可以使用like关键字来进行模糊查询。以下是一个模糊查询的例子:


在这个例子中,我们使用了like关键字来进行模糊查询,查询条件为name。需要注意的是,在查询语句中使用动态SQL时,需要使用#{}来进行占位符的替换。

三、Mybatis读取XML

Mybatis读取XML文件的方式有两种,分别是使用Class.getResourceAsStream()方法和使用java.io.File类进行读取。

使用getResourceAsStream()方法读取XML文件的方式如下:

InputStream inputStream = getClass().getResourceAsStream("/mapper/UserMapper.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

使用File类读取XML文件的方式如下:

File file = new File("path/to/mybatis-config.xml");
InputStream inputStream = new FileInputStream(file);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

四、Mybatis获取XML内容

在使用Mybatis的时候,我们可以通过SqlSession获取到mapper.xml里面定义的SQL语句,并且执行SQL语句获取数据。

以下是获取XML内容的代码示例:

SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List userList = userMapper.getUserList();

  

在这个例子中,SqlSession是操作数据库的入口,可以通过getMapper()方法获取到mapper接口的实现。我们再利用接口的方法进行数据库操作即可。

五、Mybatis表达式

在使用Mybatis构建动态SQL的时候,为了更加方便地操作数据,Mybatis内置了一些表达式,例如${}和#{}。${}表示使用字符串拼接的方式拼接,#{}则以参数占位符的方式插入语句。以下是一个使用表达式的例子:


在这个例子中,我们使用了#{}表达式,将SQL语句中的id用参数占位符取代掉。jdbcType也是一个表达式,用来指定参数类型。

六、Mybatis Plus排序查询

Mybatis Plus是一款Mybatis的增强工具,它拥有更加强大的查询和操作能力。以下是一个Mybatis Plus排序查询的例子:

IPage userPage = new Page<>(pageNum, pageSize);
LambdaQueryWrapper
    queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getGender, gender)
            .orderByAsc(User::getAge);
List
     userList = userMapper.selectPage(userPage, queryWrapper).getRecords();

    
   
  

在Mybatis Plus中,我们使用LambdaQueryWrapper进行查询条件的构建,其中eq()函数表示等于,orderByAsc()表示以哪个字段进行升序查询。

七、Mybatis Batch模式选取

在进行大量数据的插入和更新的时候,使用Mybatis Batch能够极大的提高程序的执行效率。以下是一个Mybatis Batch模式选取的例子:

SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
for (int i = 0; i < 1000; i++) {
    User user = new User();
    user.setName("name" + i);
    user.setAge(i);
    userMapper.insert(user);
}
sqlSession.commit();

在这个例子中,我们开启了Mybatis Batch模式,将数据先缓存在内存中,最后一次性地向数据库插入记录,节约了对数据库的访问时间。

结语

本文介绍了Mybatis XML配置文件的格式和用法,主要包括Mybatis XML配置文件、Mybatis的XML模糊查询、Mybatis读取XML、Mybatis获取XML内容、Mybatis表达式、Mybatis Plus排序查询、Mybatis Batch模式选取等方面。Mybatis作为Java持久化框架的代表,已经成为Java后端开发的重要工具之一。