一、介绍
mybatis是一个持久层框架,是用java来编写的。它封装了jdbc的很多细节,使开发者只需关注sql语句本身,而无需关注注解驱动,创建连接等繁杂过程。它使用了ORM的思想实现了结果集的封装。
二、环境的搭建
- 创建工程
- 准备数据库
- 在maven中引入mybatis依赖
mybatis官网:https://mybatis.org/mybatis-3/zh/getting-started.html
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.2</version> <scope>test</scope> </dependency> </dependencies>
- 创建实体类user
import java.io.Serializable; import java.util.Date; /** * @author jcH * @create 2020-01-27 16:23 */ public class user implements Serializable { private Integer id; private String username; private Date birthday; private String sex; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "user{" + "id=" + id + ", username='" + username + '\'' + ", birthday=" + birthday + ", sex='" + sex + '\'' + ", address='" + address + '\'' + '}'; } }
- 在resource目录下创建mybatis主配置文件
<?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"> <!--mybatis主配置文件--> <configuration> <!--配置环境--> <environments default="mysql"> <environment id="mysql"> <!--配置事务类型--> <transactionManager type="JDBC"></transactionManager> <!--配置数据源(连接池)--> <dataSource type="POOLED"> <!--配置数据库四个基本信息--> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件--> <mappers> <mapper resource="com/dgut/dao/IUserDao.xml"/> </mappers> </configuration>
- 创建dao独立配置文件
<?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"> <!--命名空间(IUserDao的路径)--> <mapper namespace="com.dgut.dao.IUserDao"> <!--id不能乱写,要写接口的方法名称 resultType指定查询结果的封装类型--> <select id="findAll" resultType="com.dgut.domain.User"> select * from user </select> </mapper>
===========================================================================================
注解驱动环境配置
- 不需要创建dao映射文件IUserDao.xml,主配置文件中的mapper做一下修改
<mappers> <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件--> <!--<mapper resource="com/dgut/dao/IUserDao.xml"/>--> <!--使用注解驱动,需要指定被注解的类的全限定类名--> <mapper class="com.dgut.dao.IUserDao"/> </mappers>
- IUserDao做一下修改
** * 查询所有操作 * @return */ @Select("select * from user") List<User> findAll();
至此,环境搭建完毕
入门实例:https://blog.csdn.net/weixin_40391011/article/details/104095574
三、注意事项
- 在idea中创建目录和创建包是不一样的。在创建包时,com.dgut.dao是三级结构;而在创建目录时,com.dgut.dao是一级结构。所以在创建IUserDao.xml时,目录要一级一级来创建,以确保时三级结构。
- mybatis的映射配置文件位置必须与dao接口的包结构一致。
- 映射配置文件的mapper标签namespace属性的取值不许是dao接口的全限定类名。
- 映射配置文件的操作(如select)的id属性取值必须是dao接口的方法名。
在遵循2、3、4点之后,我们在开发当中就无须再写dao的实现类了。