一、引言
在Java的世界里,与数据库进行交互是应用开发中不可或缺的一部分。而MyBatis作为一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通的Java对象)为数据库中的记录。
二、MyBatis基础
MyBatis的核心思想是将SQL语句从Java代码中分离出来,存储在XML配置文件中,并通过MyBatis提供的API将Java对象与SQL语句进行映射。下面是一个简单的MyBatis使用示例。
1、添加MyBatis依赖
首先,你需要在你的项目中添加MyBatis的依赖。如果你使用Maven,可以在pom.xml
中添加如下依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version> <!-- 请使用最新版本 -->
</dependency>
2、创建MyBatis配置文件
在项目的resources
目录下,创建一个名为mybatis-config.xml
的配置文件,并配置数据源、Mapper等。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 引入database.properties配置 -->
<!-- <properties resource="database.properties" />-->
<properties>
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///cvs_db?serverTimezone=GMT-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</properties>
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<typeAliases>
<!-- <typeAlias alias="sysuser" type="com.bdqn.entity.TSysUser"/>-->
<package name="com.bdqn.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 配置映射文件 -->
<mappers>
<mapper resource="mapper/TSupplierMapper.xml" />
<mapper resource="mapper/T_Sys_UserMapper.xml" />
</mappers>
</configuration>
3、创建Mapper接口和XML映射文件
创建一个UserMapper接口,并定义需要执行的操作。然后,在resources
目录下创建一个与接口同名的XML映射文件,配置SQL语句。
UserMapper.java:
package com.bdqn.mapper;
import com.bdqn.pojo.TSysUser;
public interface T_Sys_UserMapper {
/**
* 统计用户数量的方法
* @return
*/
int count();
}
UserMapper.xml:
<mapper namespace="com.example.mapper.UserMapper">
<select id="count" resultType="int">
select count(1) from t_sys_user
</select>
</mapper>
4、使用MyBatis
通过MyBatis的SqlSession和MyBatisUtil工具类来执行SQL语句。
public class SysUserMapperTest {
private final Logger logger = Logger.getLogger(SysUserMapperTest.class);
private final MyBatisUtil myBatisUtil = new MyBatisUtil();
private SqlSession sqlSession = null;
@Test
public void count() throws Exception {
try {
sqlSession = MyBatisUtil.createSqlSession();
int count = sqlSession.getMapper(T_Sys_UserMapper.class).count();
System.out.println("总数据量:" + count);
} finally {
MyBatisUtil.closeSqlSession(sqlSession);
}
}
}
三、总结
MyBatis凭借其强大的功能、灵活的配置和优秀的性能,成为了Java开发者与数据库交互的首选工具之一。通过上面的示例,我们可以看到MyBatis是如何将SQL语句与Java代码进行解耦,并通过XML或注解进行配置的。希望这篇文章能帮助你更好地理解MyBatis,并在实际开发中运用它。