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); ListuserList = userMapper.getUserList();
在这个例子中,SqlSession是操作数据库的入口,可以通过getMapper()方法获取到mapper接口的实现。我们再利用接口的方法进行数据库操作即可。
五、Mybatis表达式
在使用Mybatis构建动态SQL的时候,为了更加方便地操作数据,Mybatis内置了一些表达式,例如${}和#{}。${}表示使用字符串拼接的方式拼接,#{}则以参数占位符的方式插入语句。以下是一个使用表达式的例子:
在这个例子中,我们使用了#{}表达式,将SQL语句中的id用参数占位符取代掉。jdbcType也是一个表达式,用来指定参数类型。
六、Mybatis Plus排序查询
Mybatis Plus是一款Mybatis的增强工具,它拥有更加强大的查询和操作能力。以下是一个Mybatis Plus排序查询的例子:
IPageuserPage = 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后端开发的重要工具之一。