简介
什么是MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
一,MyBatis框架搭建步骤
1.1,配置XML
使用Maven来构建项目,则需要将下面代码置于pom.xml中:
<!-- mysql 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency> <!-- mybatis依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency>
1.2,编写MyBatis框架核心配置文件
MyBatis框架的核心配置文件主要应用于配置连接数据库的相关信息以及影响MyBatis框架运行时行为的属性。
为了方便分类管理,常常在项目中新建一个resources资源目录,用来存放各种配置文件。先右击项目创建一个资源目录resources,如图:
再resources目录下右键新建一个file,命名为mybatis.xml,
之后再把下面一段代码赋值到mybatis.xml文件中。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 引入jdbc.properties--> <properties resource="jdbc.properties"></properties> <!-- 配置mybatis的log实现为LOG4J--> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <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="${pwd}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/xinxi2/dao/TSysUserMapper.xml"/> <mapper resource="com/xinxi2/dao/TSystorageMapper.xml"/> </mappers> </configuration>
最后其次,在resources目录下再创建一个连接数据库的驱动配置文件jdbc.properties。再把下面的代码赋值到jdbc.properties中。
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/bianlidain?useUnicode=true&character username=root pwd=root
1.3,创建实体类
根据现有的数据库创建实体类
package com.xinxi2.bean; public class Student { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
1.4,创建Mapper接口
在MyBatis框架下,Mapper接口是指用于绑定到SQL映射语句下的接口,又称映射器,通常与SQL映射文件配合使用。对应用而言,Mapper接口即为Dao接口,定义了对数据进行持久化操作的API。命名一般都是遵循“实例类名”+Mapper的规则。一般放在与Dao层下。如图:
StudentMapper代码如下:
package com.demo.dao; import com.demo.bean.Student; import java.util.List; public interface StudentMapper { public List<Student> getlist(); }
1.5,创建SQL映射文件
如图:
定义与用户操作相关的SQL映射文件,该文件是一个XML文件。SQL映射文件一般与相关的Mapper接口配合使用,属于Dao组件,且针对特定的实体类,所以其命名规则与Mapper接口相同,为“实体类名”+Mapper,且通常与Mapper接口放在同一个包下。现在dao包中创建一个StudentMapper.xml文件,再把下面的内容复制过去。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.demo.dao.StudentMapper"> <select id="getlist" resultType="com.demo.bean.Student"> select * from student </select> </mapper>
各元素的含义如下:
mapper:SQL映射文件的根元素,只有一个namespace属性。
namespace:命名空间,用于对SQL映射进行组织和管理,实现了SQL映射的隔离,取值应是全局唯一。
select:表示查询语句,MyBatis框架的SQL映射中常用的元素之一,部分属性如下:
id:SQL语句的标识符,取值在该命名空间下唯一,一般与接口名相同。
resultType:SQL语句的返回值类型。
注意
SQL映射文件的路径信息需要添加到MyBatis框架的核心配置文件mybatis-config.xml中。如下代码所示:
<mappers> <mapper resource="com/demo/dao/StudentMapper.xml"/> </mappers>