MyBatis 是一个优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis 入门指南
什么是MyBatis?
MyBatis 是一个半ORM(对象关系映射)框架,它将 SQL 映射文件存储在 XML 文件中,通过这些映射文件,我们可以将 SQL 语句与 Java 对象进行映射,从而实现数据库操作。
MyBatis 的优势
- 轻量级:MyBatis 不依赖于任何第三方框架,易于集成。
- 灵活配置:通过 XML 或注解进行配置,灵活度高。
- 易于学习:入门门槛低,易于学习和使用。
- 支持自定义:允许自定义 SQL、存储过程以及高级映射。
MyBatis 的基本使用
- 添加依赖:在项目的
pom.xml文件中添加 MyBatis 的依赖。<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> - 创建配置文件:创建
mybatis-config.xml文件,配置数据库连接、事务管理等。<configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> </configuration> - 编写 Mapper 接口:定义一个 Mapper 接口,声明要执行的方法。
public interface UserMapper { User selectById(Integer id); } - 编写 Mapper XML:创建对应的 Mapper XML 文件,定义 SQL 语句。
<mapper namespace="com.example.mapper.UserMapper"> <select id="selectById" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> - 注册 Mapper:在 MyBatis 配置文件中注册 Mapper。
<mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers>
MyBatis 实战案例
创建数据库表
首先,我们需要创建一个简单的用户表。
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
age INT
);
添加用户
接下来,我们将使用 MyBatis 添加一个用户。
创建 User 类:定义一个 User 类,对应数据库中的用户表。
public class User { private Integer id; private String name; private Integer age; // getter 和 setter }编写 Mapper 接口:声明一个方法用于添加用户。
public interface UserMapper { int insertUser(User user); }编写 Mapper XML:定义 SQL 语句用于插入用户。
<mapper namespace="com.example.mapper.UserMapper"> <insert id="insertUser"> INSERT INTO user (name, age) VALUES (#{name}, #{age}) </insert> </mapper>添加用户:在业务层调用 Mapper 接口的方法添加用户。
public class UserService { private SqlSessionFactory sqlSessionFactory; public UserService(SqlSessionFactory sqlSessionFactory) { this.sqlSessionFactory = sqlSessionFactory; } public void addUser(User user) { try { SqlSession session = sqlSessionFactory.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); mapper.insertUser(user); session.commit(); } catch (Exception e) { e.printStackTrace(); } } }
总结
通过本文,我们了解了 MyBatis 的基本概念、优势和使用方法。通过简单的示例,我们学习了如何使用 MyBatis 实现数据持久化操作。希望这篇文章能够帮助你轻松学会 MyBatis,并在实际项目中应用它。
