一、什么是MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
二、 Mybatis的特点
-
简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
-
灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。
-
sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
-
解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
-
提供映射标签,支持对象与数据库的orm字段关系映射 提供对象关系映射标签,支持对象关系组建维护 提供xml标签,支持编写动态sql。
三、ORM是什么?
ORM (Object Relational Mapping),对象关系映射,是一种为了解决关系型数据库数据与简单Java对象(FOJO)的映射关系的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中。
四、持久化和ORM
(1) 持久化是程序数据在瞬时状态和持久化转换的过程。
(2)ORM (Object Relational Mapping)
-
编写程序的时候,已面向对象的方式处理数据
-
保存数据的时候,却以关系型数据库的方式存储
(3)ORM解决方案包含下面四个部分
-
在持久化对象上执行基本的增、删、改、查操作
-
对持久化对象提供一种查询语句或者API
-
对象关系映射工具
-
提供与事务对象交互、执行检查、延迟加载以及其他优化功能
五、搭建MyBatis开发环境
MyBatis的安装和配置步骤如下:
(1)引入MyBatis依赖:在项目的构建文件(如pom.xml)中添加MyBatis的依赖项。你可以通过Maven或Gradle等构建工具管理依赖。下面是一个使用Maven的例子:
<dependencies>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>XXX</version>
</dependency>
<!-- 数据库驱动,根据你使用的数据库选择对应的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>XXX</version>
</dependency>
</dependencies>
(2)配置数据源:在应用的配置文件中配置数据库连接信息,包括数据库驱动、连接URL、用户名和密码等。可以使用XML配置文件(如mybatis-config.xml)或者注解方式进行配置。以下是一个使用XML配置文件的示例:
<!-- mybatis-config.xml -->
<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="mypassword"/>
</dataSource>
</environment>
</environments>
</configuration>
(3)创建Mapper接口:创建一个Java接口,用于定义数据库操作的方法。每个方法对应一条SQL语句。例如:
public interface UserMapper {
User getUserById(int id);
void insertUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
(4)编写映射文件:为Mapper接口编写对应的XML映射文件,其中定义了具体的SQL语句和结果映射规则。XML映射文件通常与Mapper接口放在同一个包下,且文件名与接口名相同,只是后缀为".xml"。例如:
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<!-- 查询 -->
<select id="getUserById" resultType="com.example.model.User">
SELECT * FROM users WHERE id = #{id}
</select>
<!-- 插入 -->
<insert id="insertUser">
INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>
<!-- 更新 -->
<update id="updateUser">
UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<!-- 删除 -->
<delete id="deleteUser">
DELETE FROM users WHERE id = #{id}
</delete>
</mapper>
(5)配置MyBatis:在应用的配置文件中配置MyBatis框架,指定映射文件的位置、别名设置等。可以使用XML配置或者Java代码配置。以下是一个使用XML配置的示例:
<!-- mybatis-config.xml -->
<configuration>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
<!-- 别名设置 -->
<typeAliases>
<package name="com.example.model"/>
</typeAliases>
</configuration>
(6)使用Mapper接口:在应用的业务逻辑中使用Mapper接口的方法进行数据库操作。通过依赖注入或直接获取Mapper对象,然后调用方法执行操作。例如:
@Autowired
private UserMapper userMapper;
public User getUserById(int id) {
return userMapper.getUserById(id);
}
public void insertUser(User user) {
userMapper.insertUser(user);
}
// 其他操作类似...
以上是MyBatis的简单安装和配置步骤。根据具体的需求和项目结构,可能会有一些特殊的配置和操作。你可以根据自己的项目情况进行相应的调整和扩展。
六、总结
七、关系图