本章主要介绍如何在Spring Boot中集成MyBatis框架,以及通过MyBatis框架实现查询等功能,最后介绍如何使用MyBatisCodeHelper插件快速生成增删改查代码等内容。
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
在Spring Boot中集成MyBatis,首先需要在pom.xml文件中引入所需的依赖,具体代码如下:
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>2.0.1version>
dependency>
在pom文件添加MyBatis所需的依赖之后,需要在application.properties文件中添加如下的配置信息:
### MyBatis配置
mybatis.mapper-locations=classpath:/mappers/*.Mapper.xml
mybatis.type-aliases-package=com.example.demo.dao
application.properties配置添加完成之后,需要根据MyBatis配置添加对应的文件夹。首先,需要在/src/main/java/com.example.demo.dao目录下新建AyUserDao接口,这样Spring Boot启动时,就可以根据application.properties配置mybatis.type-aliases-package,找到AyUserDao接口。AyUserDao的具体代码如下:
@Mapper
public interface AyUserDao {
AyUser findByNameAndPassword(@Param("name") String name, @Param("passwaord") String password);
}
然后,在/src/main/resources/mappers目录下新建AyUserMapper.xml文件,SpringBoot在项目启动时,会根据application.properties配置mybatis.mapper-locations找到该文件。AyUserMapper.xml的具体代码如下:
<mapper namespace="com.example.demo.dao.AyUserDao">
<resultMap id="UserResultMap" type="com.example.demo.model.AyUser">
<id column="id" property="id" jdbcType="VARCHAR"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="password" property="password" jdbcType="VARCHAR"/>
<result column="mail" property="mail" jdbcType="VARCHAR"/>
resultMap>
<select id="findByNameAndPassword" resultMap="UserResultMap" parameterType="String">
select * from ay_user u
<where>
u. name = #{name}
and u.password = #{password}
where>
select>
mapper>
AyUserMapper.xml类开发完成之后,需要在目录/src/main/java/com.example.demo.model下开发对应的实体类AyUser,具体代码如下:
@Entity
@Table(name = "ay_user")
public class AyUser implements Serializable {
//主键
@Id
private String id;
//用户名
private String name;
//密码
private String password;
//邮箱
private String mail;
}
AyUser代码开发完成之后,在之前开发好的AyUserService接口类中添加接口findByNameAndPassword。具体代码如下:
public interface AyUserService{
AyUser findByNameAndPassword(String name, String password);
}
然后,在AyUserServiceImpl类中实现findByNameAndPassword接口,具体代码如下:
//@Transactional
@Service
public class AyUserServiceImpl implements AyUserService {
// 省略代码
@Resource
private AyUserDao ayUserDao;
@Override
public AyUser findByNameAndPassword(String name, String password) {
return ayUserDao.findByNameAndPassword(name,password)
}
}
代码开发完成之后,在MySpringBootApplicationTests类下添加测试方法,具体代码如下:
@Resource
private AyUserService ayUserService;
@Test
public void testMybatis(){
AyUser ayUser = ayUserService.findByNameAndPassword("阿姨","123456");
logger.info(ayUser.getId() + ayUser.getName());
}
执行测试用例,在Intellij IDEA控制台上可以看到相应的打印信息。