Spring-boot集成mybatis

久未见 提交于 2020-02-05 05:26:49
 
首先添加依赖:
<dependency>      
    <groupId>org.mybatis.spring.boot</groupId>       
    <artifactId>mybatis-spring-boot-starter</artifactId>       
    <version>1.3.0</version>
</dependency>

如果不想把xml文件放在resources目录下进行编辑,需要添加

<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
    </resource>
</resources>
 
 

详细代码如下:
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.helloworld</groupId>
    <artifactId>helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>helloworld</name>
    <description>Demo project for Spring Boot</description>


    <properties>
        <java.version>1.8</java.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


        <!--导入lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>




        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>






        <!--1.1 添加Druid的依赖.-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10 </version>
        </dependency>


        <!--1.2 添加mysql连接驱动依赖.-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--1.3 添加jdbc依赖.-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>




        <!--mybatis集成-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>


    </build>
</project>
 
 
 
 
mybatis.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
   <settings>
      <setting name="lazyLoadingEnabled" value="true"/>
      <setting name="aggressiveLazyLoading" value="false"/>
      <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode"/>
   </settings>
</configuration>
 
application.properties
###修改端口号
#server.port=8082
###应用上下文
##server.servlet.context-path=/crm
##spring.main.banner-mode=off
#db.username=root
#db.password=123456
#db.url=jdbc:mysql://localhost:3306/opinion?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
#db.driverClassName=com.mysql.jdbc.Driver
#spring.devtools.restart.triggerFile=trigger.file

#数据源配置
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.url=jdbc:mysql://localhost:3306/crm?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.initial-size=5




#mybatis配置
mybatis.config.location=classpath:mybatis.cfg.xml
#别名配置
mybatis.type-aliases-package=com.helloworld.mybatis.domain
#xml文件扫描
mybatis.mapper-locations=classpath:com/helloworld/mybatis/mapper/*Mapper.xml
#开启日志
logging.level.com.helloworld.mybatis.mapper=debug
 
 
 
PermissionController
package com.helloworld.mybatis.controller;
import com.helloworld.mybatis.domain.Permission;
import com.helloworld.mybatis.service.IPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


import java.util.List;


@RestController
public class PermissionController {
    @Autowired
    private IPermissionService permissionService;
    @RequestMapping(value ="/list" ,produces = "application/json;charset=UTF-8")
    public List<Permission>list(){
        return permissionService.selectAll();
    }

}

 

 
Permission
package com.helloworld.mybatis.domain;


import lombok.Getter;
import lombok.Setter;


@Setter@Getter
public class Permission {
   private Long id;
   private String name;
   private String resource;
}

 

PermissionMapper
package com.helloworld.mybatis.mapper;




import com.helloworld.mybatis.domain.Permission;


import java.util.List;


public interface PermissionMapper {
    List<Permission> selectAll();
    void insert(Permission permission);
}

 

Permission.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.helloworld.mybatis.mapper.PermissionMapper" >
  <insert id="insert" useGeneratedKeys="true" keyProperty="id" >
    insert into permission
    (resource,name)
    values
    (#{resource},#{name})
  </insert>
  <select id="selectAll" resultType="com.helloworld.mybatis.domain.Permission" >
    select * from permission
  </select>
</mapper>

 

PermissionServiceImpl
package com.helloworld.mybatis.service.impl;


import com.helloworld.mybatis.domain.Permission;
import com.helloworld.mybatis.mapper.PermissionMapper;
import com.helloworld.mybatis.service.IPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


import java.util.List;
@Service
public class PermissionServiceImpl implements IPermissionService {
    @Autowired
    private PermissionMapper permissionMapper;
    @Override
    public List<Permission> selectAll() {
        return permissionMapper.selectAll();
    }


    @Override
    public void save(Permission permission) {
        permissionMapper.insert(permission);
    }
}
 
 
IPermissionService
package com.helloworld.mybatis.service;


import com.helloworld.mybatis.domain.Permission;


import java.util.List;


public interface IPermissionService{
    List<Permission> selectAll();
    void save(Permission permission);
}
 
 
启动器
package com.helloworld.mybatis;


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


@SpringBootApplication
//mapper接口地址扫描
@MapperScan("com.helloworld.mybatis.mapper")
public class AppConfig {
    public static void main(String[] args) {
        SpringApplication.run(AppConfig.class,args);
    }
}
 
 
 
 
 
 
 
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!