MyBatis 是一个拥有“快速,可靠,灵活”特性的对象关系映射 (ORM) 框架。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型,接口和 Java 的 POJO(Plain Old Java Objects)到数据库中的记录。MyBatis 允许你构建出具有动态 SQL 语句的持久层。
本文旨在向您介绍如何迅速入门 MyBatis。将带领您通过 MyBatis 的核心要素,并讲解如何开始一个基本的 MyBatis 项目。
-
下载 MyBatis MyBatis 可以从官网(http://www.mybatis.org/)上找到,或者使用第三方依赖管理工具,如 Maven,Gradle 或 Ant。
-
创建 Java 运行环境 首先,您需要一个针对 Java 的运行环境,如 Maven 或 Gradle。您可以使用任何您认为最合适的 IDE 为您的项目创建一个简单的文件夹结构。
-
配置 MyBatis MyBatis 使用 XML 文件将应用程序和数据库之间的映射关系抽象出来。
首先,您需要创建一个名为 ${project_dir}/src/main/resources/mybatis-config.xml 的文件,该文件作为 MyBatis 主配置文件。这个文件的最基本的内容如下: `
`接下来,您需要根据您的项目和数据库类型修改此文件。
- 创建映射文件 MyBatis 映射文件是描述如何从表中获取或向表中插入数据的 XML 和 SQL 的文件。例如,该文件可能具有以下结构: `
其中,namepsace 属性是指映射文件到指定的类(即 UserMapper)。
- 创建接口及实现类 MyBatis 使用接口和 Java 反射技术来完成以上工作。 您需要创建一个名为 UserMapper.java 的接口,其中定义了要实现的方法,然后创建 UserMapperImpl.java 类并实现 UserMapper 接口:
`//UserMapper.java import java.util.List;
public interface UserMapper { List getAll(); User getUser(long id); void insertUser(User user); void updateUser(User user); void deleteUser(long id); }
//UserMapperImpl.java import java.util.List;
public class UserMapperImpl implements UserMapper { private SqlSession sqlSession; public List getAll() { return sqlSession.selectList("getAllUsers"); } public User getUser(long id) { return sqlSession.selectOne("getUser", id); } public void insertUser(User user) { sqlSession.insert("insertUser", user); } public void updateUser(User user) { sqlSession.update("updateUser", user); } public void deleteUser(long id) { sqlSession.delete("deleteUser", id); } }`
注意,这里我们使用 sqlSession 对象,它是从 SqlSessionFactory 中获得的。
- 创建 MyBatis 工具类 在完成了上述步骤之后,您需要创建一个 MyBatis 工具类,名为 MyBatisUtil.java,用于创建 SqlSessionFactory 的实例,并获取 SqlSession 的实例:
public class MyBatisUtil { private static SqlSessionFactory sqlSessionFactory; public static SqlSessionFactory getSqlSessionFactory() { if (sqlSessionFactory == null) { InputStream inputStream; try { inputStream = Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { throw new RuntimeException(e.getMessage()); } } return sqlSessionFactory; } public static SqlSession getSqlSession() { if (sqlSessionFactory == null) { getSqlSessionFactory(); } return sqlSessionFactory.openSession(); } }
- 执行测试 现在,您可以验证MyBatis 是否能够顺利工作,创建一个名为 MyBatisTest.java 的简单测试类:
public class MyBatisTest { public static void main(String[]args) { UserMapper userMapper = new UserMapperImpl(); User user = userMapper.getUser(1); System.out.println(user); } }
此时,我们便可以运行该测试类,看MyBatis 是否能够正确地从数据库中获取用户信息,如姓名和地址等。
通过本文,相信读者已经可以快速的入门 MyBatis,并创建出能够工作的基于 MyBatis 的 Java 项目。MyBatis 的熟悉,还需要不断的学习和练习,为此,建议大家多参阅文档,多动手实践。