MyBatis配置与简单使用教程

5星 · 超过95%的资源 0 下载量 95 浏览量 更新于2024-09-02 收藏 96KB PDF 举报
"MyBatis是Java开发中的一个持久层框架,专注于定制化SQL、存储过程以及高级映射。它简化了数据库操作,避免了手动处理JDBC代码和参数设置,通过XML或注解将Java对象与数据库记录映射。本文将讲解MyBatis配置文件的编写和基本使用方法。" 在MyBatis中,配置文件是整个框架的核心,它包含了数据源、事务管理、映射文件等关键信息。通常,这个配置文件命名为`mybatis-config.xml`,但名称可以自定义。下面我们将详细解析配置文件的主要组成部分: 1. 根元素:配置文件的根元素是`<configuration>`,它包含所有MyBatis的全局配置。 2. properties:用于配置外部属性文件或者系统属性,例如数据库连接的URL、用户名和密码。 ```xml <properties resource="database.properties"> <property name="username" value="dev_user"/> <property name="password" value="dev_password"/> </properties> ``` 3. settings:提供了一系列的全局设置,比如缓存、延迟加载、日志等。 ```xml <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="false"/> </settings> ``` 4. typeAliases:定义别名,简化Java类型在XML映射文件中的书写。 ```xml <typeAliases> <typeAlias alias="User" type="com.example.User"/> </typeAliases> ``` 5. mappers:注册映射器,可以是全限定类名或者映射文件路径。 ```xml <mappers> <mapper resource="com/example/UserMapper.xml"/> <mapper class="com.example.UserMapper"/> </mappers> ``` 6. environments:定义环境配置,包括默认环境和其他环境。每个环境包含数据源和事务管理器。 ```xml <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> ``` 7. plugins:配置拦截器,如PageHelper分页插件。 8. objectFactory 和 refactory:自定义对象工厂和反射工厂。 MyBatis的简单使用通常涉及以下几个步骤: 1. 创建数据库连接和事务管理器。 2. 创建`SqlSessionFactory`,它是MyBatis的核心,负责创建`SqlSession`实例。 3. 使用`SqlSession`执行SQL,`SqlSession`提供了增删改查的方法,并管理事务。 4. 映射文件(Mapper XML)定义SQL语句,可以包含参数和结果映射。 5. 在Java代码中通过接口调用SQL,MyBatis会根据接口方法和Mapper XML自动匹配执行。 例如,一个简单的增删改查操作可能如下: ```java // 假设我们有UserMapper接口和对应的XML文件 public interface UserMapper { User selectUser(int id); } SqlSession session = sqlSessionFactory.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(1); // 执行查询 session.commit(); // 提交事务 session.close(); ``` MyBatis相对于传统的JDBC,其优点在于减少了大量手动编写SQL和结果集映射的代码,提高了代码的可读性和可维护性。同时,SQL与业务逻辑分离,有利于团队协作和项目迁移。此外,MyBatis还支持动态SQL,使得SQL构建更加灵活。