整合的方式

  • 新建 maven 项目
  • 引入依赖包
  • 配置资源文件

案例实操

新建 maven 项目

新建 maven 项目 spring_mybatis

目录结构如下:

主目录包:

​ com.xxx.dao、

​ com.xxx.mapper、

​ com.xxx.service、

​ com.xxx.service.impl

测试包:spring_mybatis

引入依赖包

打开 pom.xml 开始添加依赖包

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xxx</groupId><artifactId>test-xxxms</artifactId><version>1.0-SNAPSHOT</version><name>test-xxxms</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- spring 核心jar --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.2.RELEASE</version></dependency><!-- spring 测试jar --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.2.RELEASE</version></dependency><!-- spring jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.2.RELEASE</version></dependency><!-- spring事物 --><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.3.2.RELEASE</version></dependency><!-- c3p0 连接池 --><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.1</version></dependency><!-- 添加mybatis与Spring整合的核心包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><!-- mysql 驱动包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency><!-- 日志打印相关的jar --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.2</version></dependency></dependencies><build><finalName>tpl-web</finalName><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources></build>
</project>

配置资源文件

​ a) Spring 文件 spring.xml

​ b) Mybatis 文件 mybatis.xml

​ c) 数据库连接 properties 文件 db.properties

​ d) 日志输出文件 log4j.properties

spring.xml 文件配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><context:component-scan base-package="com.xxx"/><context:property-placeholder location="db.properties"/><tx:annotation-driven  transaction-manager="txManager"/><!-- 配置c3p0 数据源  --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property></bean><bean id="txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><!--  整合 框架(Spring与Mybatis)  --><!-- 配置 sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 数据源 --><property name="dataSource" ref="dataSource"></property><!-- 框架的配置文件 --><property name="configLocation" value="classpath:mybatis.xml" /><!-- 映射文件 --><property name="mapperLocations" value="classpath:com/xxx/dao/mapper/*.xml" /></bean><!-- 配置扫描器 --><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 扫描com.xxx.dao这个包以及它的子包下的所有映射接口类 --><property name="basePackage" value="com.xxx.dao" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /></bean></beans>

mybatis.xml 文件配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--别名的配置  每个人必须会 --><typeAliases><package name="com.xxx.model"/></typeAliases></configuration>

db.properties 文件配置(对于其它数据源属性配置,见 c3p0 配置讲解,这里采用默认属性配置)

建立数据库 mybatis(注意数据库,用户名,密码以自己本地数据库为准

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding= utf8 jdbc.username=root jdbc.password=

log4j.properties

便于控制台日志输出

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

扩展

开始编写 helloworld

User 实体类定义

public class User { private int id; private String userName; private String userPwd; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } @Override public String toString() { return "User [id=" + id + ", userName=" + userName + ", userPwd=" + userPwd + "]"; } }

UseDao 接口与映射文件定义

UserDao 接口

public interface UserDao { public User queryUserById(int 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.xxx.dao.UserDao"> <select id="queryUserById" parameterType="int" resultType="user"> select id,userName,userPwd from user where id=#{id}  </select> </mapper>

UserService 接口类与实现类定义

public interface UserService { public User queryUserById(); }

UserServiceImpl 实现类(此时直接注入我们的 UserDao 接口即可,然后直接调用

其方法,事已至此,离成功仅差一步!)

@Service public class UserServiceImpl implements UserService{ @Resource private UserDao userDao; public User queryUserById(){ return userDao.queryUserById(7);  } }

junit 测试

因为与 spring 框架集成,我们采用 spring 框架测试 spring Test

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring.xml"} ) public class TestSpringMybatis { @Autowired private UserService userService; @Test public void testQueryUserById() { System.out.println(userService.queryUserById(1)); } }

结果输出

spring boot mybatis 整合_两大热门框架 Spring 与 Mybatis 如何整合呢?相关推荐

  1. Spring 和 Spring Boot 最核心的 3 大区别,详解!

    概述 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对于用了 ...

  2. java spring boot 注解验证_如何理解Java原生注解和Spring 各种注解?

    作者:digdeep .cnblogs.com/digdeep/p/4525567.html 导引 Spring中的注解大概可以分为两大类: spring的bean容器相关的注解,或者说bean工厂相 ...

  3. Spring Boot干货系列:(十二)Spring Boot使用单元测试 | 嘟嘟独立博客

    原文地址 2017-12-28 开启阅读模式 Spring Boot干货系列:(十二)Spring Boot使用单元测试 Spring Boot干货系列 Spring Boot 前言 这次来介绍下Sp ...

  4. 54. spring boot日志升级篇—logback【从零开始学Spring Boot】

    在<44. Spring Boot日志记录SLF4J>章节中有关相关的介绍,这里我们在深入的了解下logback框架. 为什么要使用logback ? --在开发中不建议使用System. ...

  5. 17、Spring Boot普通类调用bean【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52013017 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个 ...

  6. Spring Boot 2.0(四):使用 Docker 部署 Spring Boot

    Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目, ...

  7. spring boot controller 初始化_使用 Spring 快速创建 web 应用的两种方式

    介绍 本篇文章主要介绍,如何使用 Spring 开发一个 Web 应用. 我们将研究用 Spring Boot 开发一个 web 应用,并研究用非 Spring Boot 的方法. 我们将主要使用 J ...

  8. java基础巩固-宇宙第一AiYWM:为了维持生计,Spring全家桶_Part1-2(学学Spring源码呗【两大神器:大管家与个性化产物】、【XmlBeanFactory争风吃醋】)~整起

    PART1:构建环境的大体步骤 首先呢,肯定是得把源码的运行环境准备好,咱们才能一步一步学呀.但是我自己呢,参考了很多文章和书,最后成功我觉得每个文章都有用,所以如果大家想看完整步骤,可以Google ...

  9. 深度丨AI 与区块链:两大热门技术,会碰撞出什么样的火花?

    编者按:区块链和AI可以说是当今最热门的两个技术方向了.在一般人看来,这两大技术似乎没有什么交叉的地方,因为区块链和AI分别属于是技术谱系的两个极端:一个是在封闭数据平台上培育中心化的智能,另一个则是 ...

最新文章

  1. Yarn 问题发现与解决
  2. linux mysql 二进制包_mysql5.7 二进制包安装
  3. CSS和JS样式属性对照表
  4. 一、前端必须掌握HTML的基础知识
  5. mysql中的blob和text区别
  6. 我女朋友让我删前任,我明明删了她还是要分手...
  7. hive 创建访问用户_hive创建角色并赋权
  8. magento: configurable 显示所有属性及获取 Json Config how to get Json Config by product id
  9. 使用 Flex 开发 Web 服务客户端
  10. android cocos2dx 3.15.1创建工程,Cocos2d-x创建android项目(cocos2d-x系列三)
  11. [ Front-end ] Iframe 跨域双向通信
  12. 【转载】通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
  13. 如何使用轻量应用服务器自带的Cloudreve应用镜像搭建属于自己的云网盘?
  14. 如何在VSCode上写Mark Down
  15. 搞个网站需要多少钱【网站费用】
  16. OkHttp3超时设置和超时异常捕获
  17. 《统计学习方法》--李航
  18. c语言之字母大小转换
  19. Linux命令学习笔记
  20. 网站漏洞安全测试 具体渗透思路分析

热门文章

  1. Comet OJ - Contest #3 题解
  2. 源码解读Linux的limits.conf文件
  3. Sequelize-nodejs-8-Transactions
  4. Trouble Shooting记录:服务 Microsoft Exchange Information Store 意外停止
  5. 《UNIX环境高级编程(第3版)》——2.6 选项
  6. greenplum 单表 数据扫描
  7. selenium2 webdriver要点理解
  8. android Linkify的用法
  9. 谷歌:早在这个0day 补丁发布前几周,朝鲜国家黑客就已利用
  10. SpringBoot系列之使用自定义注解校验用户是否登录