MyBatis入门教程:配置与基本操作

需积分: 0 0 下载量 162 浏览量 更新于2024-08-05 收藏 42KB MD 举报
“MyBatis基础文档,包括配置文件、动态SQL、基本的CRUD操作、注解开发以及工厂函数的使用。” 在Java开发中,MyBatis是一个流行的数据持久层框架,它允许开发者将SQL语句与Java代码分离,提高了代码的可维护性和灵活性。下面我们将详细探讨MyBatis的基础知识。 ### 1. 配置文件 MyBatis的配置文件是整个框架的入口,通常命名为`mybatis-config.xml`。这个文件包含了MyBatis的基本设置,如数据源配置、事务管理器、环境配置等。以下是一个简单的配置文件示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <!-- 其他配置 --> </configuration> ``` ### 2. 动态SQL MyBatis的一个强大特性是支持动态SQL,允许在XML映射文件或注解中编写条件语句。这使得SQL可以根据传入的参数动态生成。例如,以下是一个使用`if`标签进行条件查询的例子: ```xml <select id="selectUser" parameterType="map" resultType="User"> SELECT * FROM user WHERE 1=1 <if test="name != null"> AND name = #{name} </if> <if test="age != null"> AND age = #{age} </if> </select> ``` ### 3. 基本的CRUD操作 MyBatis提供了简单易用的API来执行CRUD(创建、读取、更新、删除)操作。通过Mapper接口和对应的XML映射文件,可以轻松实现对数据库的操作。例如,以下是一个UserMapper接口及其XML映射文件中的插入操作: ```java public interface UserMapper { void insertUser(User user); } ``` ```xml <insert id="insertUser"> INSERT INTO user(name, age) VALUES (#{name}, #{age}) </insert> ``` ### 4. 使用注解开发 除了XML映射文件,MyBatis还支持使用注解来简化配置。在实体类和Mapper接口上添加注解,可以避免编写XML文件。例如,使用注解实现上面的用户插入操作: ```java @Mapper public interface UserMapper { @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})") void insertUser(User user); } ``` ### 5. 工厂函数 MyBatis提供了一个SqlSessionFactoryBuilder来创建SqlSessionFactory,它是MyBatis的核心对象,用于生成SqlSession实例。SqlSession是执行SQL操作的接口。通常,我们会在应用启动时创建SqlSessionFactory,并在整个应用生命周期中复用它。以下是如何使用工厂函数创建SqlSessionFactory: ```java String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); ``` MyBatis通过灵活的配置、动态SQL和直观的API,降低了数据库操作的复杂性,使得开发者能更专注于业务逻辑。通过理解并熟练掌握这些基础概念,你可以更有效地使用MyBatis进行Java开发。