【风水轮流转,你要相信,那些曾经骑在你头上拉屎的,总有一天会换成另一拨人。】
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
在Spring Boot中集成Mybatis,首先需要在pom.xml文件中引入所需的依赖,具体代码如下:
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.1
在pom文件添加Mybatis所需的依赖之后,我们需要在application.properties文件中添加如下的配置信息:
### mybatis配置
mybatis.mapper-locations=classpath:/mappers/*Mapper.xml
mybatis.type-aliases-package=com.example.demo.dao
mybatis.mapper-locations:Mapper资源文件存放的路径。
mybatis.type-aliases-package:Dao接口文件存放的目录。
application.properties配置添加完成之后,我们需要根据MyBatis配置添加对应的文件夹。首先,我们需要在/src/main/java/com.example.demo.dao目录下新建AyUserDao接口,这样Spring Boot启动时候,就可以根据application.properties配置mybatis.type-aliases-package,找到AyUserDao接口。AyUserDao具体代码如下:
/**
* 描述:用户DAO
* @author Ay
* @date 2017/11/20.
*/
@Mapper
public interface AyUserDao {
/**
* 描述:通过用户名和密码查询用户
* @param name
* @param password
*/
AyUser findByNameAndPassword(@Param("name") String name,
@Param("password") String password);
}
@Mapper:重要注解, MyBatis根据接口定义与Mapper文件中的SQL语句动态创建接口实现。
@Param:注解参数,在Mapper.xml配置文件钟,可以采用#{}的方式对@Param注解括号内的参数进行引用。
findByNameAndPassword:该方法可以通过用户名和密码查询用户。
然后我们在/src/main/resources目录下新建AyUserMapper.xml文件,Spring Boot在项目启动时候,会根据application.properties配置mybatis.mapper-locations找到该文件。AyUserMapper具体代码如下:
< mapper>标签:该标签的namespace属性用于绑定绑定Dao接口的。
< select>标签:用来编写select语句,映射查询语句。select标签有几个重要的属性,比如:resultMap
< resultMap>:映射管理器resultMap,是Mybatis中最强大的工具,描述了如何将数据库查询的结果集映射到Java对象,并管理结果和实体类之间的映射关系。
AyUserDao代码开发完成之后,我们在之前开发好的AyUserService接口类中添加添加接口findByNameAndPassword。具体代码如下:
/**
* 描述:用户服务层接口
* @author 阿毅
* @date 2017/10/14
*/
public interface AyUserService {
//此处省略代码
AyUser findByNameAndPassword(String name, String password);
}
然后,我们在AyUserServiceImpl类中实现findByNameAndPassword接口,具体代码如下:
/**
* 描述:用户服务层实现类
* @author 阿毅
* @date 2017/10/14
*/
//@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控制台可以看到相应的打印信息。
来自《知识的边界》
在一次讨论会上,一位著名的演说家没讲一句开场白,手里却高举着一张20美元的钞票。面对会议室里的200个人,他问:“谁要这20美元?”一只只手举了起来。他接着说:“我打算把这20美元送给你们中的一位,但在这之前,请准许我做一件事。”他说着将钞票揉成一团,然后问:“谁还要?”仍有人举起手来。他又说:“那么,假如我这样做又会怎么样呢?”他把钞票扔到地上,又踏上一只脚,并且用脚碾它。尔后他拾起钞票,钞票已变得又脏又皱。“现在谁还要?”还是有人举起手来。
【无论我如何对待那张钞票,你们还是想要它,因为它并没贬值,它依旧值20美元。人生路上,我们会无数次被自己的决定或碰到的逆境击倒、欺凌甚至碾得粉身碎骨。我们觉得自己似乎一文不值。但无论发生什么,或将要发生什么,在上帝的眼中,你们永远不会丧失价值。在他看来,肮脏或洁净,衣着齐整或不齐整,你们依然是无价之宝。】
无
如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎鼓励,点赞、顶、欢迎留下宝贵的意见、多谢支持!