Spring Boot整合MyBatis

本文介绍如何在Spring Boot项目中整合MyBatis,通过XML配置SQL查询,并演示了具体的项目结构、配置文件、Mapper文件及实体类等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考 http://www.cnblogs.com/powercto/p/6717874.html 博客。
这里使用xml配置的sql而不是java代码来实现SQL查询。还是传统的Mapper但是和原来SpringMVC区别的是不用再手动创建dataSource,sqlSession等一系列繁琐的工具类。
项目结构如下图:
项目结构
1、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>com</groupId>
  <artifactId>test</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>test Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.RELEASE</version>
    <relativePath/>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.2.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.39</version>
    </dependency>
  </dependencies> 

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>


</project>

2、 application.properties(如果用sts生成的SpringBoot项目自带,如果是Eclipse手动创建的SpringBoot项目需自己手动创建该文件)

spring.application.name=compute-service
server.port=8085
server.tomcat.uri-encoding=GBK
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crm_customermanagement?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.typeAliasesPackage=test.entity
mybatis.mapperLocations=classpath:mapper/*.xml

(更多详细配置可百度搜索更具体信息参考)
·mybatis.typeAliasesPackage:为实体对象所在的包,跟数据库表一一对应
·mybatis.mapperLocations:mapper文件的位置
3、UserInfoMapper.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="test.dao.UserInfoDao">
    <resultMap type="test.entity.UserInfo" id="userInfo">
        <result column="status" property="status" />
        <result column="expirationTime" property="expirationTime" />
        <result column="sms_num" property="smsNum" />
        <result column="shopName" property="shopName" />
    </resultMap>
    <!-- 查询用户的余额和过期时间 -->
    <select id="findExpireTimeAndSms" parameterType="java.lang.String" resultMap="userInfo">
        SELECT shopName,expirationTime,sms_num,status
        FROM crm_user
        WHERE taobao_user_nick = #{sellerName}
    </select>
</mapper>

4、UserInfoDao.java

import test.entity.UserInfo;

/** 
* @author ??
* @version 创建时间:2017年11月6日 下午2:12:59
*/
public interface UserInfoDao {
    public UserInfo findExpireTimeAndSms(String sellerName);
}

5、UserInfo.java

package test.entity;
/** 
* @author ??
* @version 创建时间:2017年11月6日 上午11:33:06
*/
public class UserInfo {
    private String status;

    private String taoBaoNick;

    private String shopName;

    private Long smsNum;

    private Long expirationTime;

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getTaoBaoNick() {
        return taoBaoNick;
    }

    public void setTaoBaoNick(String taoBaoNick) {
        this.taoBaoNick = taoBaoNick;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Long getSmsNum() {
        return smsNum;
    }

    public void setSmsNum(Long smsNum) {
        this.smsNum = smsNum;
    }

    public Long getExpirationTime() {
        return expirationTime;
    }

    public void setExpirationTime(Long expirationTime) {
        this.expirationTime = expirationTime;
    }


}

6、UserInfoController.java

package test.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import test.dao.UserInfoDao;

/** 
* @author ??
* @version 创建时间:2017年11月6日 下午2:16:38
*/
@RestController
public class UserInfoController {
    @Autowired
    private UserInfoDao userInfoDao;
    @RequestMapping("/user")
    public String test(){
        System.out.println(this.userInfoDao.findExpireTimeAndSms("测试账号").getShopName());
        return "aaa";
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值