您现在的位置是:首页 > 文章详情

学Spring Boot之集成MyBatis

日期:2019-07-18点击:375

学Spring Boot之集成MyBatis
通常来讲我们访问数据库都会通过一个ORM框架,很少会直接使用JDBC来执行数据库操作的。这么多ORM框架,选择哪个好呢?

小代选ORM框架
小代同学最终选用的ORM框架是MyBatis,他选择MyBatis的原因主要有以下几点:

可以简化我们操作数据库的步骤。
相对来说学习成本较低,Hibernate还需要学习其HQL查询规范。
使用相对广泛。
集成MyBatis
如何集成MyBatis呢?其实很简单,在我们上一篇文章《小代学Spring Boot之数据源》的基础之上,我们只需要在pom.xml文件中加入以下内容即可。

<groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version>


配置MyBatis
集成MyBatis之后我们还需要相关配置才能够使用它。首先我们需要配置回话工厂和事务管理器,在DruidDatasourceConfig.java类中添加如下内容即可:

@Bean(name = "transactionManager")
public DataSourceTransactionManager transactionManager(

 @Qualifier("dataSource") DataSource dataSource) {

return new DataSourceTransactionManager(dataSource);
}

@Bean(name = "sqlSessionFactory")
@ConditionalOnMissingBean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
return sessionFactory.getObject();
}
然后我们还需要配置Mapper.java文件和Mapper.xml文件的地址好让Spring知道在那里扫描我们的Mapper文件。Mapper.java文件地址,我们可以通过@MapperScan注解来指定。如下所示,我们在DruidDataSourceConfiguration上加了这个注解:

@MapperScan(value = { "cn.itweknow.sbdatasource.mapper" }, sqlSessionFactoryRef = "sqlSessionFactory")
而Mapper.xml文件的地址则需要在初始化会话工厂的过程中指定,如下所示,我们在sqlSessionFactory方法中增加了一些内容:

@Bean(name = "sqlSessionFactory")
@ConditionalOnMissingBean(name = "sqlSessionFactory")
public SqlSessionFactorysqlSessionFactory(@Qualifier("druidDataSource") DruidDataSource druidDataSource) throws Exception {

final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(druidDataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath:sqlmap/*Mapper.xml")); return sessionFactory.getObject();

}
就这样,我们的Spring Boot项目已经成功的集成了MyBatis了。下面就一起来测试一下看下效果吧。

测试
1.新建一个名为spring_toturial的数据库,并且新建一张t_user表以及其对应的实体类,具体的数据库结构脚本和实体类可以点击这里获取。
2.新建UserMapper.java接口文件,并且定义一个名为selectById接口,如下所示:

public interface UserMapper {

User selectById(@Param("id") Integer id);

}
3.新建UserMapper.xml文件,并且实现selectById,如下所示:

<?xml version="1.0" encoding="UTF-8"?>


<id column="id" jdbcType="INTEGER" property="id" /> <result column="name" jdbcType="VARCHAR" property="name" />

select * from t_user where id = #{id}



4.新建selectById的Junit测试用例,如下代码所示:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {SbDatasourceApplication.class})
public class UserMapperTest {

@Autowired private UserMapper userMapper; @Test public void testSelectById() { User user = userMapper.selectById(1); System.out.println(user); } 

}
5.执行Junit方法如果控制台能够输出如下结果,那就恭喜你成功集成MyBatis了。

User{id=1, name='abc'}
原文地址https://www.cnblogs.com/endless-code/p/11211077.html

原文链接:https://yq.aliyun.com/articles/709919
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章