Springboot +TkMapper +generator 搭建

一、開場白

許多小夥伴,搭建一個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去將代碼生成器配置好,就好了

如果有問題掃這個神奇的二維碼會解答你的一切問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章