*对应的目录结构

一、添加依赖

    <!-- 添加对 mybatis 的依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><!-- 添加对 JDBC 的支持 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- 添加数据库驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- 添加 c3p0 数据源 --><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency>

二、 配置数据源与 SqlSessionFactory

1.通过 application.properties 配置文件进行配置

# 设置数据库相关
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=1234# 设置 c3p0 数据源
spring.datasource.type=com.mchange.v2.c3p0.ComboPooledDataSource# 设置 MyBatis mapper 的别名所在的包
mybatis.type-aliases-package=com.jas.mapper
# 设置 mapper 接口对应 XMl 配置文件的路径
mybatis.mapper-locations=classpath:mapperConfig/*.xml

2.通过配置类进行配置

application.properties 配置文件设置相关变量

# 设置数据库相关属性
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=1234# 设置,mapper 接口路径,mapper 接口对应的 xml 配置文件
mapper.package.path=com.jas.mapper
mapper.xml.config.path=/mapperConfig/*.xml

DataSourceConfiguration 类配置 c3p0 数据源

@SpringBootConfiguration
public class DataSourceConfiguration {@Value("${spring.datasource.driver-class-name}")private String jdbcDriver;@Value("${spring.datasource.url}")private String jdbcUrl;@Value("${spring.datasource.username}")private String jdbcUser;@Value("${spring.datasource.password}")private String jdbcPassword;@Beanpublic DataSource createDataSource() throws PropertyVetoException {ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass(jdbcDriver);dataSource.setJdbcUrl(jdbcUrl);dataSource.setUser(jdbcUser);dataSource.setPassword(jdbcPassword);// 关闭连接后不自动提交dataSource.setAutoCommitOnClose(false);return dataSource;}
}

SqlSessionFactoryBean 类配置 SqlSessionFactory

@SpringBootConfiguration
public class SessionFactoryConfiguration {@Value("${mapper.xml.config.path}")private String mapperXMLConfigPath;@Value("${mapper.package.path}")private String mapperPackagePath;@Autowiredprivate DataSource dataSource;@Beanpublic SqlSessionFactoryBean createSqlSessionFactory() throws IOException {SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();String packageXMLConfigPath = PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + mapperXMLConfigPath;// 设置 mapper 对应的 XML 文件的路径sqlSessionFactoryBean.setMapperLocations(resolver.getResources(packageXMLConfigPath));// 设置数据源sqlSessionFactoryBean.setDataSource(dataSource);// 设置 mapper 接口所在的包sqlSessionFactoryBean.setTypeAliasesPackage(mapperPackagePath);return sqlSessionFactoryBean;}
}

三、编写代码

User

public class User {private Integer userId;private String username;private Integer age;private char gender;/** 省略 get 与 set 方法*/
}

UserMapper 接口

/** 只定义了一个简单的测试方法*/
@Mapper
public interface UserMapper {User getUser(Integer id);
}

userMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jas.mapper.UserMapper"><select id="getUser" resultType="com.jas.domain.User">SELECT * FROM user WHERE userId = #{userId}</select>
</mapper>

四、 编写测试的 Controller

@RestController
public class UserController {@Autowiredprivate UserMapper userMapper;@GetMapping("/user/{userId}")public User getUser(@PathVariable Integer userId){User user = userMapper.getUser(userId);return user;}
}

五、入口类代码 (验证 c3p0 数据源是否生效)

/** 注意:入口类要能扫描到对应的 Bean*/
@SpringBootApplication
public class App {public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(App.class, args);DataSource dataSource = context.getBean(DataSource.class);System.out.println(dataSource.getClass());}
}

六、测试结果

控制台输出:可以看出 c3p0 数据源已经生效

浏览器访问测试的 Controller

这篇博文记录基于 XML 配置文件的 MyBatis 使用步骤。如果是基于注解的话,直接在对应的 mapper 接口方法上加上对应的注解即可。

PS :打印 SQL 日志

只需要在application.properties 配置文件中设置logging.level.包名=debug即可

# com.jas.mapper 是 mapper 接口所在的包
logging.level.com.jas.mapper=debug

当访问测试 Controller 时,控制台会输出 SQL 语句

重写了一下 Spring Boot 整合 MyBatis 的 demo,基于注解与配置文件两种形式,使用的是 druid 数据源,并配置了 druid 监控中心。点我查看源码~

Spring Boot 集成 MyBatis 与 c3p0相关推荐

  1. Spring Boot 集成 Mybatis 实现双数据源

    转载自   Spring Boot 集成 Mybatis 实现双数据源 这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源 ...

  2. spring boot 集成Mybatis时 Invalid bound statement (not found)

    spring boot 集成Mybatis时,运行提示 org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...

  3. Spring Boot 集成MyBatis

    Spring Boot 集成MyBatis Spring Boot 系列 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring ...

  4. Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper

    1. 概述 本文的内容包括如下内容: Spring Boot集成mybatis Spring Boot集成pagehelper分页插件,定义分页的相关类 实现工具类:model转dto,实现数据层和传 ...

  5. spring boot集成mybatis+事务控制

    一下代码为DEMO演示,采用注解的方式完成Spring boot和Mybatis的集成,并进行事物的控制 数据源的配置: 1 spring.datasource.url=jdbc:mysql://lo ...

  6. mybatis映射longtext类型数据_全网首例全栈实践(五)Spring Boot 集成Mybatis

    一.概述 我们的Spring Boot后续项目使用的都是MySQL.Spring Boot连接MySQL的方式包括JDBC,Spring JPA,Hibeirnate,Mybatis等,本文主要带大家 ...

  7. MBG真香 Spring Boot集成Mybatis Generator插件

    Mybatis中文官网对mybatis-generator的介绍:http://www.mybatis.cn/archives/885.html Mybatis官网对mybatis-generator ...

  8. Spring Boot 集成 MyBatis和 SQL Server实践

    文章共 509字,阅读大约需要 2分钟 ! 概 述 Spring Boot工程集成 MyBatis来实现 MySQL访问的示例我们见过很多,而最近用到了微软的 SQL Server数据库,于是本文则给 ...

  9. spring boot集成mybatis

    1.在pom中添加依赖: #mybatis依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> &l ...

最新文章

  1. 鲲鹏服务器设置ip文件,IPFS在鲲鹏云服务器中的安装与编译过程记录
  2. Linux内核中max()宏的奥妙何在?(一)
  3. Linux操作系统下软件的安装方法大全
  4. boost::mp11::mp_iterate相关用法的测试程序
  5. Windows系统IntelliJ IDEA安装配置
  6. Spring MVC Rest 学习 一
  7. 使用ABAP Push Channel(APC)开发的乒乓球游戏,可双打 1
  8. 从本地或网页加载图片
  9. 2013 Office安装aurora公式编辑器
  10. popwindow 加个边框_PopupWindow仿微信浮层弹出框效果
  11. u盘修复计算机系统,如何使用u盘修复系统
  12. 本地连接测试mysql失败,提示 flush hosts;
  13. 离职前一定要删除这几个文件,不然你的微信聊天记录全被别人看了
  14. MongoDB 可视化工具 RoboMongo---Win7 64 安装
  15. 【trick 5】warmup —— 一种学习率调优方法
  16. 视频压缩怎么弄?建议收藏这些方法
  17. 小程序中如何正确使用换行符‘\n‘
  18. python pip安装包时出现 ValueError: check_hostname requires server_hostname 错误 解决方法
  19. MATLAB运用——设计船舶模型
  20. 毛毛最新推荐伤感日志:我是一个任性的孩子

热门文章

  1. 接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)
  2. SQL——字段分组合并
  3. Python——OpenCV(opencv-python库)调用摄像头
  4. 斐波那契数列(Fibonacci Sequence)
  5. N Problems During K Days
  6. 七天入门linux,一个Linux新手的七天
  7. linux无线网络密码修改,linux无线网络配置工具----iwconfig
  8. 去掉 Android工程中让人很不爽的“黄色警告”
  9. SQL注入学习——时间盲注详解 sqli-labs(Less 9)
  10. 转换汉字为unicode形式的字符串和转换unicode形式字符串转换成汉字