簡單的利用IDEA搭建SpringBoot+Maven+Mybatis+自動生成代碼

最近在系統的學習SpringBoot框架,而且要用該框架作個項目……網上也大大小小看了不少教程,感受不少寫文章的人都不太負責任,只知道搬運,大概都沒有實際操做過,問題也是有不少,因此本身寫一篇文章記錄一下,也打算養成個作筆記的習慣,也但願文章能多多少少的給你們帶來些幫助。php

1、搭建項目

首先新建項目,可是因爲Maven做者以前就已經弄過了,沒有配置和安裝過的小夥伴能夠網上找下教程,本篇暫時沒有提到。css


如圖選擇,點擊nexthtml

包名什麼的,本身修改下
java

要配置的一些服務,Thymeleaf主要是和返回前臺頁面和一些動態頁面的處理有關,若是隻作後臺接口的話,可能用不到,可是爲了測試仍是建議勾選。Mysql,JDBC,Mybatis就顧名思義了。mysql



其他部分就一直next,最後finish就行了。項目搭建好了以後,會加載一陣子,稍等便可。web

2、配置文件

一、配置application.propertiesspring

而後進入到項目路徑下的src/main/resources/application.properties文件sql

首先說明一點,這裏也能夠不使用application.properties文件,採用更加簡潔的application.yml文件。網上不少教程也提到了,可是最終的原理SpringBoot底層會把application.yml文件解析爲application.properties,因此就仍是用了原來的文件,也有一些是我的使用緣由,因此在這裏,只提供application.properties的配置信息,yml能夠參考網上的書寫格式數據庫


# 數據庫訪問配置
# 主數據源,默認的
spring.datasource.url = jdbc:mysql://192.168.0.57:3306/XXXXXXXXXX
spring.datasource.username = root
spring.datasource.password = XXXXXXXXXXXXXXX
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#頁面熱加載
spring.thymeleaf.cache = false
#端口
server.port=8080

#配置應用名稱
spring.mvc.view.prefix=/templates/
spring.mvc.view.suffix=.html複製代碼


二、配置pom.xmlbash

<properties>    
    <!-- Java接口和實體類 -->    
    <targetJavaProject>${basedir}/src/main/java</targetJavaProject>    
    <targetMapperPackage>com.crow.mapper</targetMapperPackage>    
    <targetModelPackage>com.crow.entity</targetModelPackage>    
    <!-- XML生成路徑 -->    
    <targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject>    
    <targetXMLPackage>mapper</targetXMLPackage>    
    <!-- 依賴版本 -->    
    <mapper.version>3.4.0</mapper.version>    
    <mybatis.version>3.3.1</mybatis.version>    
    <mybatis.spring.version>1.2.4</mybatis.spring.version>    
    <pagehelper.version>4.1.1</pagehelper.version>
    
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>    
    <java.version>1.8</java.version>    
    <spring-cloud.version>Dalston.SR4</spring-cloud.version>
</properties>複製代碼

重點是配置了幾個全局的參數,已經自動生成代碼的路徑和存放位置


三、配置generatorConfig.xml

而後在resources文件夾下建立generator,mapper文件夾,前者是爲了存放mybatis自動生成代碼的插件的配置文件,後者是爲了存放生成的xml文件

新建文件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>
    <!-- 數據庫驅動:選擇你的本地硬盤上面的數據庫驅動包-->
    <classPathEntry location="D:\crow1.0\mysql-connector-java-8.0.15.jar"/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的註釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="false"/>
        </commentGenerator>
        <!--數據庫鏈接驅動類,URL,用戶名、密碼 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.0.57:3306/AAA" userId="BBB" password="CCC">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成(實體)模型的包名和位置-->
        <javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成XML映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="${targetXMLPackage}" targetProject="${targetResourcesProject}">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO接口的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名-->
        <table tableName="DDD" domainObjectName="EEE" enableCountByExample="false" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>複製代碼

基本上都有註釋了,有幾個地方再簡單說明一下

數據庫驅動的地方要引入一個數據庫驅動包,我是單獨找了個驅動包,而後放在了項目的路徑下,D:\crow1.0\mysql-connector-java-8.0.15.jar也就是這個路徑,這個要根據我的狀況來修改

AAA數據庫名,BBB用戶名,CCC密碼

DDD要去操做數據庫中表的名稱,EEE生成實體的名稱

舉例:DDD爲user,EEE最好爲User

最後部分的配置<table tableName="DDD" domainObjectName="EEE" enableCountByExample="false" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="false"></table>前兩個剛纔介紹過了,至於後面的選項,是false和true看實際需求,從參數名能夠看出來,就是是否生成某類方法的意思,不少同窗默認配置的時候都是false,因此就會出現生成的代碼只有insert方法,就是這個問題。在這裏,做者選擇了update,delete,select方法。

3、項目運行

在這裏,寫一個簡單的方法,來返回一個頁面

首先在resources/templates下新建hello.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
    <link rel="stylesheet" href="../static/test.css" type="text/css"/>
</head>
<body>
    <h1>Hello World</h1>
</body>
</html>複製代碼

在resources/static下新建test.css

body{
    color: red;
}複製代碼

寫一個controller

package com.crow.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * @author tzz
 * @version 1.00
 * @time 2019/4/10 14:41
 */

@Controller
@RequestMapping(value ={"/hello"})
public class IndexController {

    @RequestMapping(value ="/index",method = RequestMethod.GET)
    public String index(){
        return "hello";
    }

}複製代碼

而後根據運行並訪問該接口http://localhost:8080/hello/index

但我以爲不少人第一次會出現問題


而後一步步的確認問題,首先並非返回的頁面找不到,由於在項目生成的路徑下能夠看到,直接訪問都沒有問題,排除。其次,打斷點,發現根本就沒有進入到這個接口裏面。查閱資料發現,問題所在,以下圖。

做者的目錄結構是這樣的


最後發現問題是由於

接口類也就是controller文件,和啓動類proapplication不在一個包下。須要在啓動類添加一個註解。


再次啓動項目,成功。可是發現了個新問題,成功是成功了,可是test.css文件沒有引入成功。


我在target文件中發現有test.css可是網頁查看發現資源沒有載入。而後修改一下application.properties配置文件。

註釋掉以前的spring.mvc.view.prefix=/templates/

添加以下配置

spring.mvc.static-path-pattern=/static/**複製代碼


搞定!

4、自動生成代碼

上面已經配置好了自動生成代碼,可是如何自動生成呢?

點擊edit config或者點擊菜單欄中的run中的edit config均可以


點擊添加按鈕,選擇maven


而後根據我的狀況,修改一下名稱什麼的,再添加command line參數:mybatis-generator:generate -e


而後選擇剛剛配好的,啓動測試一下


大功告成。之後要換表生成實體的話,只須要修改generatorConfig.xml配置文件中的表的參數就ok,就是那個DDD,忘記了的同窗去上面找一下吧。


備註:有什麼說的不當或者有問題的地方還但願能夠指出,但願你們共同進步。

相關文章
相關標籤/搜索