springboot-mybatis整合

springboot-mybatis整合
注意点:有5个

MybatisApplication

package com.hipad;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.hipad.dao") //注意点1,要包扫描
public class MybatisApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisApplication.class, args);
    }
}

CityController

package com.hipad.controller;
import com.hipad.Service.CityService;
import com.hipad.domain.City;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController //注意点2,相当于@ResponseBody和@Controller
public class CityController {
    @Autowired
    CityService cityService;
    @RequestMapping(value = "city/list",method = RequestMethod.GET)
    public City findCity(@RequestParam(value = "cityName",required = true) String cityName){
        System.out.println("我是findCity------------------------------------------");
        return cityService.findCity(cityName);
    }
}

CityService

package com.hipad.Service;
import com.hipad.domain.City;
date:2018/5/13
 */
public interface CityService {
    City findCity(String cityName);
}

CityServiceImpl

package com.hipad.Service.impl;
import com.hipad.Service.CityService;
import com.hipad.dao.CityDao;
import com.hipad.domain.City;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class CityServiceImpl implements CityService {
    @Autowired
    CityDao cityDao;
    @Override
    public City findCity(String cityName) {
        return cityDao.findCity(cityName);
    }
}

CityDao

package com.hipad.dao;
import com.hipad.domain.City;
public interface CityDao {
    City findCity(String cityName);
}

domain层的City

package com.hipad.domain;
public class City {
    private Long id;
    private Long provinceId;
    private String cityName;
    private String description;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Long getProvinceId() {
        return provinceId;
    }
    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    @Override
    public String toString() {
        return "City{" +
                "id=" + id +
                ", provinceId=" + provinceId +
                ", cityName='" + cityName + '\'' +
                ", description='" + description + '\'' +
                '}';
    }
}

resources中的application.properties

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springbootdb?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123

##mybatis配置,首先包扫描,后加载配置文件
mybatis.typeAliasesPackage=com.hipad.domain //注意点3,包扫描domain实体类
mybatis.mapperLocations=classpath:mapper/*.xml

resources中的CityMapper.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.hipad.dao.CityDao">
    <resultMap id="BaseMap" type="com.hipad.domain.City">
        <result column="id" property="id"/>
        <result column="province_id" property="provinceId"/>
        <result column="city_name" property="cityName"/>
        <result column="description" property="description"/>
    </resultMap>

    <select id="findCity" resultMap="BaseMap" parameterType="String">
        SELECT * FROM city WHERE city_name=#{cityName} 
    </select> // 注意点4,city_name不是实体类属性
</mapper>

POM

<?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>springboot</groupId>
    <artifactId>springboot-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-mybatis :: 整合 Mybatis Demo</name>

    <!-- Spring Boot 启动父依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>

    <properties>
        <mybatis-spring-boot>1.2.0</mybatis-spring-boot>
        <mysql-connector>5.1.39</mysql-connector>
    </properties>

    <dependencies>

        <!-- Spring Boot Web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring Boot Test 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Spring Boot Mybatis 依赖 -->
      <!-- 注意点5,依赖,不在spring依赖包,在mybatis仓库-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-spring-boot}</version>
        </dependency>

        <!-- MySQL 连接驱动依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector}</version>
        </dependency>

        <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

猜你喜欢

转载自blog.csdn.net/weixin_39478044/article/details/80319298