SpringBoot 整合Mybatis
由于之前都是使用Hibernate的,所以研究SpringBoot 整合Mybatis这部分内容花费了一定的时间,做完这个小例子,对Mybatis的理解也有了一定的提升。
一、Mybatis简介
Mybatis是一款优秀的持久层框架,支持定制化SQL、存储过程和高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
二、在pom.xml中引入Mybatis依赖
SpringBoot要整合Mybatis,首先需要在pom.xml中引入Mybatis的依赖,具体代码如下:
org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.1
三、在application.properties中添加Mybatis的配置信息
添加Mybatis的配置信息,主要是将Mapper资源文件的存放路径和Dao接口文件的存放目录配置到项目中,让项目可以找到对应的文件。配置信息如下所示:
############################################################## mybatis配置#############################################################mybatis.mapper-locations=classpath:/mappers/*Mapper.xmlmybatis.type-aliases-package=com.oyc.jdbcdemo.dao
四、建立Dao接口和Mapper文件,实现与数据库的关联
根据步骤三配置的信息,我们先在com.oyc.jdbcdemo.dao中建立OyUserDao.java,具体代码如下:
/** * 用户dao接口,Mybatis接口 */@Mapperpublic interface OyUserDao { /** * 获取用户列表接口 * @return */ ListgetUserList(); /** * 根据用户姓名获取用户信息 * @param name * @return */ OyUser getUserByName(@Param("name")String name);}
然后再classpath:/mappers/中建立与OyUserDao相对应的OyUserMapper.xml文件,具体代码如下:
五、OyUser服务类及其实现类的创建
用户服务类接口:OyUserService.java
/** * @author oyc * @Title: * @Description:用户服务类接口 * @date 2018/7/1414:06 */public interface OyUserService { //获取用户列表 ListgetUserList(); //根据用户名称获取用户详情信息 OyUser getUserByName(String name);}
用户服务类接口的实现:OyUserServiceImpl.java
/** * @author oyc * @Title: * @Description: * @date 2018/7/1414:09 */@Servicepublic class OyUserServiceImpl implements OyUserService { @Resource private OyUserDao oyUserDao; @Override public ListgetUserList() { return oyUserDao.getUserList(); } @Override public OyUser getUserByName(String name) { return oyUserDao.getUserByName(name); }}
六、用户控制类
OyUserController.java,注入OyUserService,使用服务类OyUserService去调用dao实现对数据库的操作。
/** * @author oyc * @Description:用户控制类 * @date 2018/7/14 14:11 */@Controller@RequestMapping("/user")public class OyUserController { @Autowired private OyUserService oyUserService; /** * 获取用户列表信息 */ @RequestMapping("/list") public String userList(Model map){ ListuserList = oyUserService.getUserList(); map.addAttribute("users", userList); return "user"; } /** * 根据用户名获取用户详情信息 * @return */ @RequestMapping("/byname") public String userByName(Model map){ OyUser user = oyUserService.getUserByName("oyc"); map.addAttribute("users", user); return "user"; }}
七.测试结果
git: