MyBatis(一)

302 阅读2分钟

MyBatis是一个轻量级、简单易用的持久层框架,它与数据库交互更加灵活,提供了强大的SQL映射功能。

一、什么是MyBatis MyBatis是一款优秀的持久层框架,它将Java对象与数据库中的数据进行映射,实现了对象关系映射(ORM)的功能。与其他ORM框架相比,MyBatis更加轻量级,更加灵活,不需要进行复杂的配置和学习。

二、MyBatis的基本原理 MyBatis的基本原理是通过SQL映射文件(Mapper.xml)将Java方法与SQL语句进行映射,然后通过MyBatis的核心类SqlSessionFactory和SqlSession来执行SQL语句并返回结果。开发者只需要关注SQL映射和Java方法的编写,无需手动处理数据库连接和结果集。

三、MyBatis的入门步骤

  1. 导入依赖 在项目的pom.xml文件中,添加MyBatis的依赖:
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
  1. 配置数据库连接 在项目的配置文件中,配置数据库相关信息:
<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/mybatis_demo" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
</configuration>
  1. 编写SQL映射文件 创建一个Mapper.xml文件,定义SQL语句和Java方法的映射关系:
<mapper namespace="com.example.mapper.UserMapper">
    <select id="getUserById" resultType="com.example.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
</mapper>
  1. 编写Java接口和实体类 创建一个Java接口,定义方法和参数,并使用@Mapper注解标识该接口为MyBatis的Mapper接口:
@Mapper
public interface UserMapper {
    User getUserById(Integer id);
}

创建一个实体类User,与数据库中的user表对应:

public class User {
    private Integer id;
    private String name;
    // 省略getter和setter方法
}
  1. 创建SqlSessionFactory和SqlSession 在应用程序中,创建SqlSessionFactory和SqlSession对象,用于执行SQL语句:
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
  1. 调用Mapper接口方法 通过SqlSession的getMapper方法获取Mapper接口的实现类,并调用方法:
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
  1. 关闭SqlSession 在执行完数据库操作后,记得关闭SqlSession:
sqlSession.close();

四、总结
MyBatis作为一款简单易用的持久层框架,可以帮助开发者更加便捷地操作数据库。