学Spring Boot之集成MyBatis
学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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Aliyun Serverless VSCode Extension v1.1.0 发布
Aliyun Serverless VSCode Extension 是阿里云 Serverless 产品 函数计算 Function Compute 的 VSCode 插件,该插件结合了函数计算 Fun 工具以及函数计算 SDK ,是一款 VSCode 图形化开发调试函数计算以及操作函数计算资源的工具。 通过该插件,用户可以: 快速地在本地初始化项目、创建函数 运行、调试本地函数(调试功能目前支持 nodejs、python、php) 拉取云端的服务函数列表,执行云端函数 部署服务函数至云端,并更新相关配置 v1.1.0 版本 北京时间 2019 年 07 月 19 日 Aliyun Serverless VSCode Extension 发布了 v1.1.0 版本,该版本相比与 v1.0.0 版本 新增了多会话调试 新增了多账户多区域切换 新增了
- 下一篇
.net持续集成cake篇之cake任务依赖、自定义配置荐及环境变量读取
.net持续集成cake篇之cake任务依赖、自定义配置荐及环境变量读取新建一个构建任务及任务依赖关系设置上节我们通过新建一个HelloWorld示例讲解了如何编写build.cake以及如何下载build.ps1启动文件以及如何运行.实际项目中,我们使用最多的是对项目进行编译.本节我们讲解如何创建一个编译任务. 添加一个编译任务我们仍然使用上节使用的build.cake文件,我们复制一下Default任务,并把它改名为BuildProject 代码如下 Task("BuildProject").Does(() => { Information("Hello World!"); });通过上一节代码我们可以看到Information方法仅仅输出了一行信息,对我们构建可能并没太大作用.Cake提供了一个Msbuild方法,我们可以使用该方法来编译我们的项目,修改后的代码如下 Task("BuildProject").Does(() => { MSBuild("buildDemo.sln");//我的项目名称叫作buildDemo.sln,这里改为你的实际项目名 });添加完以...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果