前言:

本项目基于maven构建,使用mybatis-spring-boot作为spring-boot项目的持久层框架

spring-boot中使用mybatis持久层框架与原spring项目使用方式和注解都不相同,需要依赖mybatis-spring-boot包

1、引入mybatis和数据库及其他项目依赖

1.1、引入mybatis依赖

<!-- mybatis-spring-boot --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency>


1.2、引入mysql 驱动


<!-- mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>


1.3、项目pom.xml一览

<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.eguid.carDeviceInfoSys</groupId><artifactId>carSys-web</artifactId><packaging>war</packaging><version>1.4.0-SNAPSHOT</version><name>carSys-web</name><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.0.RELEASE</version></parent><dependencies><!-- spring-boot web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!--<exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> --></dependency><!-- spring aop --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.jayway.jsonpath</groupId><artifactId>json-path</artifactId><scope>test</scope></dependency><!-- mybatis-spring-boot --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><!-- fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.17</version></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency></dependencies><profiles><profile><id>production</id><dependencies><!-- This sample is a test for the autoconfig when commons-pool is *absent*. In production it would be useful to enable pooling by using this dependency. --><dependency><groupId>commons-pool</groupId><artifactId>commons-pool</artifactId><type>pom.lastUpdated</type></dependency></dependencies></profile></profiles><!-- Package as an executable jar --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-releases</id><url>https://repo.spring.io/libs-release</url></repository></repositories><pluginRepositories><pluginRepository><id>spring-releases</id><url>https://repo.spring.io/libs-release</url></pluginRepository></pluginRepositories></project>



2、配置数据库连接参数、设置mybatis的mappers所在包以及spring-boot服务参数配置


在项目根目录下创建一个application.properties,该文件用于定义spring-boot的相关参数及数据库参数,以及配置mybatis的mappers扫描路径

如果是maven项目,application.properties放在src/main/resource/目录下

配置如下:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=eguid
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=5
spring.datasource.max-wait=10000
spring.datasource.min-idle=1
spring.datasource.initial-size=3

server.port=8088
server.session.timeout=10
server.tomcat.max-threads=800
server.tomcat.uri-encoding=UTF-8

mybatis.mapperLocations=classpath:cn/eguid/carSysWEB/mappers/*.xml


3、mybatis的dao接口及mapper.xml实现

3.1、定义mybatis的dao接口

该接口与mybatis-spring方式不同,需要加上一个@Mapper注解

@Mapper注解用于声明该接口为mybatis的dao接口

package cn.eguid.carSysWeb.dao;import java.util.List;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;import cn.eguid.carSysWeb.entity.DepInfo;//使用Mapper注解声明该接口为mybatis的dao接口@Mapperpublic interface GetInfoDao {public List<DepInfo> getRootInfo();public List<DepInfo> getDepInfo(@Param(value = "parentCoding") String org_parent_coding);public List<DepInfo> getDepInfoById(@Param(value="dep_id") String dep_id);}



3.2、dao接口对应的mapper.xml

mapper.xml与原mybatis写法相同

<!DOCTYPE mapper    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"    "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.eguid.carSysWeb.dao.GetInfoDao"> <resultMap type="cn.eguid.carSysWeb.entity.DepInfo" id="depMap"><id column="org_coding" property="dep_id"/><result column="org_name" property="dep_name"/><result column="org_parent_coding" property="dep_parent_coding"/><result column="last_time" property="last_time"/></resultMap><select id="getRootInfo" resultMap="depMap">select * from car_organization where org_parent_coding is null</select><select id="getDepInfo" parameterType="string" resultMap="depMap">SELECT * FROM car_organization where org_parent_coding=#{parentCoding,jdbcType=VARCHAR}</select><select id="getDepInfoById" parameterType="string" resultMap="depMap">SELECT * FROM car_organization where org_coding=#{dep_id}</select></mapper>



补充:

做完以上步骤,就可以在service中直接通过spring的IOC注解注入mybatis的dao实现,我这里的dao接口是GetInfoDao,所以是注入‘getInfoDao’就可以正确引用该持久层;

注意:必须在spring-boot的入口类中开启@ComponentScan注解才能扫描到项目中所有注解

package cn.eguid.carSysWeb;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.context.annotation.ComponentScan;@SpringBootApplication//开启通用注解扫描@ComponentScanpublic class Application extends org.springframework.boot.web.support.SpringBootServletInitializer {/** * 实现SpringBootServletInitializer可以让spring-boot项目在web容器中运行 */@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {builder.sources(this.getClass());return super.configure(builder);}public static void main(String[] args) {SpringApplication.run(Application.class, args);}}






5、总结:


1、spring-boot项目中使用mabatis需要依赖mybatis-spring-boot

2、需要在application.xml中定义数据库连接参数以及mybatis的mappers文件扫描路径

3、mybatis的dao接口需要加上@Mapper注解才能被spring-boot正确扫描到

4、spring-boot开启注解扫描的注解是@ComponentScan


©著作权归作者所有:来自51CTO博客作者eguid的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. spring-data详解之spring-data-jpa:简单三步快速上手spring-data-
  2. Spring注解 @Resource和@Autowired比较
  3. 通过注解的 springboot+mybatis 多数据源配置
  4. 18.SpringCloud实战项目- 整合OpenFeign实现声明式远程调用
  5. eNSP:实现不同网段不同vlan主机之间的互访(配置三层交换)
  6. eNSP:访问控制列表 ACL
  7. eNSP:hybrid接口配置实例
  8. macvlan Multus-CNI在OpenShift上的使用
  9. (unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误

随机推荐

  1. Android APK安装过程及原理详解
  2. Android中设置关键字高亮的方法
  3. android计时demo源代码
  4. 新建Cocos2dx-Android工程
  5. android 动态添加View
  6. Android高级工程师成长路线
  7. Android :Process xxxxx (pid xxxxx) has
  8. Android在Log中打印出当前的调用栈
  9. Android自学笔记(番外篇):全面搭建Linux环境
  10. Android中回调接口的使用