Springboot +TkMapper +generator 搭建

9 篇文章 0 订阅
2 篇文章 0 订阅

一、开场白

许多小伙伴,搭建一个mybatis的javaWeb项目是不是网上的类型很多啊,或者说只是搭建一部分,那都是浪费时间,我今天给大家搭建的这个项目是很方便的:

       1. 采用mybatis作为交互层

        2. 用到了tkMapper的方便性

        3. 还加入了generator进行mapper,xml,model的生成

        4. mapper和xml在同一目录,方便管理

二、实际开发

1. 我们先搭建一个springboot的项目,这个就不细说了。

2. 我们先搭建 generator 来生成mapper和xml以及model:

<1> pom中加入以下代码

  <!--Mybatis generator 映射文件自动生成-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.21</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.0.4</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.7</version>
                    </dependency>
                </dependencies>
                <!--Mybatis generator 配置文件 generatorCongig.xml 的路径-->
                <configuration>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

<2> .在resources下面加入 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>

    <context defaultModelType="flat" id="mysql" targetRuntime="MyBatis3Simple">
        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="UTF-8"/>


        <!-- 生成根Mapper 所有的Mappwe都 继承这个 根   -->
        <!-- 这个地方 注意一下 , 和你配置的 Application上面 MapperScan 的 mapper包扫描 不要再一个文件夹下,
        比如我的 我的包扫描是 @MapperScan("com.jzj.tkdemo.dao") 这个地方是 其他的包
        总而言之就是  BaseMapper 不要放在Mapper的 包扫描中, 具体原因看 下面介绍
        -->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
        </plugin>


        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/security"
                userId="root"
                password="root">
        </jdbcConnection>

        <!-- 生成的数据库实体 PO 所在位置 -->
        <javaModelGenerator targetPackage="com.zhuzi.part.security.dao.model"
                            targetProject="src/main/java">
        </javaModelGenerator>

        <!-- MAPPER XML java 文件所在位置-->
        <sqlMapGenerator targetPackage="com.zhuzi.part.security.dao.mapper"
                         targetProject="src/main/java">
        </sqlMapGenerator>

        <!-- Mapper.java 所在的文件夹,也就是mapper接口 文件夹
            1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
            2,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
            3.这个包是 com.jzj.tkdemo.dao  不要把上面的BaseMapper 放在下面 切记切记
        -->
        <javaClientGenerator targetPackage="com.zhuzi.part.security.dao.mapper"
                             targetProject="src/main/java"
                             type="XMLMAPPER">
        </javaClientGenerator>


        <!-- user 是数据库表, UserPO 是你根据报表 要生成的 实体类-->
        <table schema="" tableName="s_user" domainObjectName="User"></table>

    </context>
</generatorConfiguration>

这就配好了,下面我们找到下图运行

我们的代码就生成了

<3> . springboot的src中不认识xml静态文件,我们在pom中加入下面的东西就ok了

 

 <resources>
            <!-- 设置对*.properties进行过虑,即这些文件中的${key}会被替换掉为真正的值 -->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>**/*.woff</exclude>
                    <exclude>**/*.woff2</exclude>
                    <exclude>**/*.ttf</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.woff</include>
                    <include>**/*.woff2</include>
                    <include>**/*.ttf</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <!-- 是否替换资源中的属性 -->
                <filtering>false</filtering>
            </resource>
        </resources>

<4> . 配置我们的mybatis了

现在pom中加入下面jar

   <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.11</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

在在yml中配置好数据库

spring:
  datasource:
    password: root
    url: jdbc:mysql://127.0.0.1:3306/security
    driver-class-name: com.mysql.jdbc.Driver
    username: root

完了在启动类加入这个注解

import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan("com.zhuzi.part.security.dao.mapper")

到这就配置完了,我们来写接口测试一下


@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/user")
    public User userAdd(@RequestBody User user){
        return userService.addUser(user);
    }
    @DeleteMapping("/user")
    public boolean useDelete(@PathVariable int id){
        return userService.addDelete(id);
    }
    @GetMapping("/user")
    public List<User> useSelect(){
        return userService.selectUser();
    }


}
public interface UserService {

    User addUser(User user);

    boolean addDelete(int id);

    List<User> selectUser();
}
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;
   
    @Override
    public User addUser(User user) {
         return (userMapper.insert(user) > 0)? user : null;
    }

    @Override
    public boolean addDelete(int id) {
        return userMapper.deleteByPrimaryKey(id) > 0 ? true:false;
    }

    @Override
    public List<User> selectUser() {
        return userMapper.selectAll();
    }
}

这就完了,这就是我说的tkmapper的方便之处,基础的增删改查不用自己写,是不是被git到了。

注:如果你连collection都不想写,你去mybatis-plus去将代码生成器配置好,就好了

如果有问题扫这个神奇的二维码会解答你的一切问题

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值