springboot+mybatis+generator自动生成mybatis配置整合

注意
本次操作开发工具为2017版IDEA
框架 springboot + dubbo + zookeeper
参考文章:https://blog.csdn.net/qq_36881106/article/details/82143232

  1. 引入pom
<!-- mybatis 所需jar包 start -->
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>1.3.1</version>
</dependency>
<dependency>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-core</artifactId>
	<version>1.3.2</version>
</dependency>
	<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.47</version>
   </dependency>
	<build>
		<finalName>${project.name}</finalName>
		<plugins>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<!--配置文件的位置-->
					<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
			</plugin>
		</plugins>
	</build>
<!-- mybatis 所需jar包 end -->
  1. 创建示例表 User表
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET armscii8 COLLATE armscii8_general_ci NOT NULL,
  `age` int(11) NOT NULL,
  `address` varchar(255) NOT NULL,
  `country` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1. 创建generatorConfig.xml文件

注意这里的generatorConfig.xml文件路径要和上面pom当中配置的路径要保持一致

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
    <!--mysql 连接数据库jar 这里选择自己本地位置-->
    <classPathEntry location="C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar" />
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/skindow" userId="root"
                        password="密码">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
           NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="com.skindow.pojo"
                            targetProject="../skindow-api/src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置
           如果maven工程只是单独的一个工程,targetProject="src/main/java"
           若果maven工程是分模块的工程,targetProject="所属模块的名称",例如:
           targetProject="ecps-manager-mapper",下同-->
        <sqlMapGenerator targetPackage="resources.mapper"
                         targetProject="src/main">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.skindow.mapper"
                             targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table  tableName="user"  domainObjectName="User"  enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
                enableSelectByExample="false" selectByExampleQueryId="false" >
        </table>
    </context>
</generatorConfiguration>

在这里插入图片描述

  1. 用maven运行generatorConfig
    在这里插入图片描述
    成功生成mapper配置文件和pojo以及接口
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    生成位置与预期是一样的
    在这里插入图片描述
    注意 这里生成的pojo需要实现Serializable接口

  2. 配置mybatis连接信息
    yml配置信息如下

spring:
  datasource:
    username: root
    password: 密码
    url: jdbc:mysql://localhost:3306/skindow?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: ../skindow-api/com.skindow.pojo

#showSql
logging:
  level:
    com:
      example:
        mapper : debug

启动入口添加mapper扫描路径

@MapperScan("com.skindow.mapper")
  1. API新增接口
package com.skindow.service;

import com.skindow.pojo.User;

/**
 * Created by Administrator on 2019/8/20.
 */
public interface UserService {
    public String setUser(User user);
    public User getUser(String id);
}

  1. 新增Service层
package com.skindow.serviceImpl;

import com.alibaba.dubbo.config.annotation.Service;
import com.skindow.mapper.UserMapper;
import com.skindow.pojo.User;
import com.skindow.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * Created by Administrator on 2019/8/20.
 */
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;
    
    @Override
    public String setUser(User user) {
        int insert = userMapper.insert(user);
        if (insert == 0)
        {
            return "fail";
        }
        return "success";
    }

    @Override
    public User getUser(String id) {
        User user = userMapper.selectByPrimaryKey(new Integer(id));
        return user;
    }
}

provider-dubbo.xml

<bean id="userService" class="com.skindow.serviceImpl.UserServiceImpl"/>
	<dubbo:service interface="com.skindow.service.UserService" ref="userService" version="1.0.0" timeout="10000" retries="0"/>
  1. 新增controller
package com.skindow.controller;

import com.alibaba.fastjson.JSON;
import com.skindow.pojo.User;
import com.skindow.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

/**
 * Created by Administrator on 2019/8/20.
 */
@Controller
@Slf4j
@RequestMapping("/api/user")
@Api("skindow-user")
public class UserController {
    @Autowired
    private UserService userService;
    
    @RequestMapping(value = "/insertUser",method = RequestMethod.POST)
    @ApiOperation(httpMethod = "POST", value = "添加用户", consumes = "application/json")
    @ResponseBody
    public String insertUser(@RequestBody User user)
    {
        if (null == user)
        {
            return "user is null!";
        }
        return userService.setUser(user);
    }
    
    @RequestMapping("/queryUserById")
    @ApiOperation(httpMethod = "GET", value = "通过ID查询用户", consumes = "application/json")
    @ResponseBody
    public String queryUserById(@RequestParam(value = "id") String id)
    {
        return JSON.toJSONString(userService.getUser(id));
    }
}

consumer-dubbo.xml

	<dubbo:reference id="userService" check="false" interface="com.skindow.service.UserService" version="1.0.0" timeout="10000" retries="0"/>
  1. 启动服务
    provider启动成功!
    在这里插入图片描述
    consumer启动成功
    在这里插入图片描述
  2. 测试

这里我用wagger2测试
在这里插入图片描述
添加成功
在这里插入图片描述
查询成功
在这里插入图片描述

项目下载地址 对应tag springboot+mybatis整合

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值