IDEA搭建spring-boot druid mybatis(菜鸟从零开始)(三)(四)

(三)(四)spring boot 整合 mybatis + mybatis-generator

pom.xml 加入依赖和插件

<!--spring boot mybatis -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.2.1</version>
</dependency>

<!-- mybatis-generator -->
<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.2</version>
    <configuration>
        <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
        <overwrite>true</overwrite>
        <verbose>true</verbose>
    </configuration>
</plugin>

再加入mybatis-generator的两个配置文件
generatorConfig.xml

<?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="generatorConfig.properties" />
    <!--oracle 连接数据库jar 这里选择自己本地位置-->
    <classPathEntry location = "${drive.class.path}" />
    <context id="mybatis" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
            <!-- 是否生成注释代时间戳-->
            <property name="suppressDate" value="false" />
        </commentGenerator>

        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="${jdbc.driver}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
           NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 生成实体类地址 -->
        <javaModelGenerator targetPackage="${entity.targetProject}"
                            targetProject="${entity.targetPackage}">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
            <property name="trimStrings" value="false" />
            <!-- EclipseWork父类路径 -->
            <!--<property name="rootClass" value="${entity.abstract}" />-->
        </javaModelGenerator>

        <!-- targetProject:mapper.xml映射文件生成的位置-->
        <sqlMapGenerator targetPackage="${mapper.targetPackage}"
                         targetProject="${mapper.targetProject}">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="${mapper.interface.targetPackage}"
                             targetProject="${mapper.interface.targetProject}">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 指定数据库表 -->
        <table tableName="${table.name}" domainObjectName="${entity.name}" enableDeleteByExample="false"
               enableSelectByExample="false"  enableCountByExample="false" enableUpdateByExample="false"
               enableUpdateByPrimaryKey="false">
            <!--<generatedKey column="sid" sqlStatement="${table.primaryKey}"/>-->
            <!-- 需要忽略的列true 大小写完全匹配,false 忽略大小写匹配 -->
            <!--<ignoreColumn column="PLAN_ID"  delimitedColumnName="true" />-->
        </table>

    </context>
</generatorConfiguration>

generatorConfig.properties

#数据库驱动jar
drive.class.path = D:/mavenWork/zhongyi/com/microsoft/sqlserver/mssql-jdbc/6.2.2.jre8/mssql-jdbc-6.2.2.jre8.jar

# 数据库连接参数
#jdbc.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
#jdbc.url = jdbc:sqlserver://LANG/SQLEXPRESS:1433;DatabaseName=lang
#jdbc.username = LangXuHao
#jdbc.password= 123456
jdbc.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url = jdbc:sqlserver://10.10.1.38:1433;DatabaseName=gconline
jdbc.username = isystem
jdbc.password= isystem

# 实体类路径
#entity.abstract = com.sgai.sadp.core.base.entity.AbstractEntity
entity.targetProject = com.lang.demo
entity.targetPackage = src/main/java

# mapper.xml路径
mapper.targetProject = src/main/resources
mapper.targetPackage = mapper

# mapper interface
mapper.interface.targetProject = src/main/java
mapper.interface.targetPackage = com.lang.demo.mapper

# 生成的表名和对应的实体类名
table.name = wechat_test_prizes
#table.primaryKey = select s_customer_history_version.nextval from dual
entity.name = wechatTestPrizes

这里写图片描述

下面用maven配置启动插件生成实体类,接口,和mapper.xml
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
启动插件
控制台打印如下说明生成成功:

[INFO] Generating Record class for table wechat_test_prizes
[INFO] Generating Mapper Interface for table wechat_test_prizes
[INFO] Generating SQL Map for table wechat_test_prizes
[INFO] Saving file wechatTestPrizesMapper.xml
[INFO] Saving file wechatTestPrizes.java
[INFO] Saving file wechatTestPrizesMapper.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.472 s
[INFO] Finished at: 2018-07-16T16:14:18+08:00
[INFO] Final Memory: 17M/199M
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

生成后项目目录:
这里写图片描述

最后在application.yml 加入配置

mybatis:
  #实体类地址
  type-aliases-package: com.lang.springbootdemo.entity
  mapper-locations: classpath:mapper/*.xml

在启动类加上 @MapperScan 这样才能扫描到接口


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

@SpringBootApplication
@ServletComponentScan
@MapperScan(value = "com.lang.springbootdemo.mapper")//扫面接口
public class SpringBootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }
}

别忘记了 在生成的接口上加上@Repository


import com.lang.springbootdemo.entity.WechatTestPrizes;
import org.springframework.stereotype.Repository;

@Repository
public interface WechatTestPrizesMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(WechatTestPrizes record);

    int insertSelective(WechatTestPrizes record);

    WechatTestPrizes selectByPrimaryKey(Integer id);
}

最后在之前的HelloController 测试下 我们添加一天数据


import com.lang.springbootdemo.entity.WechatTestPrizes;
import com.lang.springbootdemo.mapper.WechatTestPrizesMapper;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: Xuhao
 * @Description:
 * @Date: Created in 11:20 2018/7/16
 */
@RestController
public class HelloController {

    @Resource
    private WechatTestPrizesMapper wechatTestPrizesMapper;

    @RequestMapping(value = "/hello")
    public String hello(){
        WechatTestPrizes wechatTestPrizes = new WechatTestPrizes();
        wechatTestPrizes.setAwardId(-1);
        wechatTestPrizes.setActivityCode("-1");
        wechatTestPrizes.setCdKey("hello");
        wechatTestPrizes.setIsconvert("a");
        int insert = wechatTestPrizesMapper.insert(wechatTestPrizes);
        System.out.println(insert);

        return "hello_spring_boot";
    }

}

学而不思则罔 思而不学则殆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值