用idea搭建spring boot+mybatis及反向生成框架

用idea搭建spring boot+mybatis框架:

准备工作,安装好环境,数据库安装,建表,插入数据,我的数据如下

1.创建新项目

.

2.选择项目版本

3.勾选依赖

4.选择数据库

5.下一步

6.生成项目目录结构如下

7.导入反向生成依赖

<dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>

8.创建反向生成类

GenerateUtil
package com.cn.utils;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class GenerateUtil {
    public void generator() throws Exception{

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("src/main/resources/generateConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);

    }
    public static void main(String[] args) throws Exception {
        try {
            GenerateUtil generatorSqlmap = new GenerateUtil();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

9.db.properties数据库连接放于resources目录下

##jdbc.driverLocation=C:\Users\user\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
jdbc.username = root
jdbc.password = 123456

#数据库中要生成的表
jdbc.table.user = goods

10.建立dao,和实体类entity,和mapper层目录,注意映射文件mapper要放在resources目录下。

11.配置generateConfig.xml放于resources目录下

<?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>
    <!--引入数据库配置文件以解耦-->
    <properties resource="db.properties"/>

    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释,true:是;false:否 -->

         <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="${jdbc.driver}"
                        connectionURL="${jdbc.url}" userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>
        <!--Oracle数据库的连接信息-->
        <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
            connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
            userId="yycg"
            password="yycg">
        </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.cn.entity"
                            targetProject="src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="src\main\resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!--
        targetPackage:mapper接口生成的位置,遵循MyBatis规范,让mapper.xml
        和mapper.java在同一目录下
         -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.cn.dao"
                             targetProject="src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->

        <table tableName="${jdbc.table.user}"></table>
        <!-- <table schema="" tableName="sys_user"></table>
        <table schema="" tableName="sys_role"></table>
        <table schema="" tableName="sys_permission"></table>
        <table schema="" tableName="sys_user_role"></table>
        <table schema="" tableName="sys_role_permission"></table> -->

        <!-- 有些表的字段需要指定java类型
         <table schema="" tableName="">
            <columnOverride column="" javaType="" />
        </table> -->
    </context>
</generatorConfiguration>

12.配置application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database=mysql
#ddddd
spring.datasource.first.initial-size=1
spring.datasource.first.max-active=5
mybatis.mapper-locations=classpath*:mapper/*.xml
server.port=8888

13.运行

GenerateUtil反向生成实体类,映射文件,及dao

14.创建service层以及实现类

GoodsService

package com.cn.service;

import com.cn.entity.Goods;

public interface GoodsService {
    public Goods getGoods(int Id);
}

15.创建实现类

GoodsServiceImpl

package com.cn.servieimpl;

import com.cn.dao.GoodsMapper;
import com.cn.entity.Goods;
import com.cn.entity.GoodsExample;
import com.cn.service.GoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class GoodsServiceImpl implements GoodsService {
    @Autowired
    GoodsMapper goodsMapper;
    @Override
    public Goods getGoods(int Id) {
        GoodsExample example = new GoodsExample();
        GoodsExample.Criteria criteria = example.createCriteria();
        criteria.andIdEqualTo(Id);
        return goodsMapper.selectByExample(example).get(0);
    }
}

16.实现控制层,GoodsContrlller

import com.cn.entity.Goods;
import com.cn.service.GoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/goods")
public class GoodsContrlller {
    @Autowired
    GoodsService goodsService;
    @RequestMapping("/get")
    public  Object getGoods(Integer Id){
        Goods goods = goodsService.getGoods(Id);
        return goods;
    }
}

17.将DemoApplication置于外层,并添加注解

@EntityScan("com.cn.entity")
@MapperScan("com.cn.dao")

项目结构如下

18运行DemoApplication,并访问测试

猜你喜欢

转载自blog.csdn.net/qq_15875773/article/details/82496693