MyBatis是一种半ORM(对象关系映射)的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的普通对象映射到数据库记录中。
MyBatis的使用步骤
-
环境搭建:首先,需要在项目中引入MyBatis的依赖。如果是Maven项目,可以在
pom.xml
中加入MyBatis的依赖。 -
配置MyBatis:MyBatis的全局配置文件包含了影响MyBatis行为的设置和属性信息。配置文件的元素包括properties(属性)、settings(设置)、typeAliases(类型别名)、typeHandlers(类型处理器)、objectFactory、objectWrapperFactory、reflectorFactory、plugins(插件)、environments(环境配置)、databaseIdProvider、mappers(映射器)等。
-
编写Mapper接口和XML文件:Mapper是一个Java接口,由用户自定义,其中的方法与SQL映射文件中的SQL语句相对应。Mapper XML文件则是SQL映射文件,里面包含了需要执行的SQL语句和映射规则等。
-
SqlSessionFactory和SqlSession:SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得。而SqlSession则是执行命令、获取映射器和管理事务的对象,可以通过SqlSessionFactory对象的openSession方法获得。
使用示例
-
引入依赖(以Maven为例):
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency>
-
MyBatis配置文件(
mybatis-config.xml
):<configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="驱动类路径"/> <property name="url" value="数据库URL"/> <property name="username" value="数据库用户名"/> <property name="password" value="数据库密码"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/UserMapper.xml"/> </mappers> </configuration>
-
Mapper接口(
UserMapper.java
):public interface UserMapper { User selectUser(int id); }
-
Mapper XML(
UserMapper.xml
):<mapper namespace="org.mybatis.example.UserMapper"> <select id="selectUser" parameterType="int" resultType="User"> SELECT * FROM user WHERE id = #{id} </select> </mapper>