新建項(xiàng)目spring boot + mybatis

一茅坛、安裝IDEA

1则拷、下載 java8曹鸠,配置環(huán)境變量
2、下載 idea坛善,安裝

二邻眷、新建項(xiàng)目

1、File - New - ProjectSpring Initializr改衩,Service URL使用Default
2抖拴、填寫包名相關(guān)信息com.yzyfdf.shares腥椒,Java選8
3、勾選依賴

    - web
        - Spring Web
    - SQL
        - JDBC API
        - MyBatis Framework
        - MySQL Driver

4洒放、選擇項(xiàng)目位置
5滨砍、完成配置等待項(xiàng)目初始化

三、添加數(shù)據(jù)

1惋戏、安裝 MySQL,idea連接數(shù)據(jù)庫响逢,可以參照 PyCharm連接MySQL
2、創(chuàng)建數(shù)據(jù)庫些膨,新建一個表钦铺,比如:

create table sharesdata
(
    myId       int primary key auto_increment comment '主鍵id',
    timestamp  varchar(13) comment '收盤時間',
    symbol     varchar(12) not null comment '股票代碼',
    index (symbol),
    name       varchar(8)  not null comment '股票名稱',
    current    float comment '當(dāng)前股價',
    chg        float comment '股價變更',
    percent    float comment '股價變更百分比',
    high       float comment '最高',
    low        float comment '最低',
    open       float comment '今開',
    last_close float comment '昨收',
    limit_up   float comment '漲停',
    limit_down float comment '跌停',
    volume     bigint comment '成交量',
    amount     float comment '成交額'
);

3、插入一條數(shù)據(jù)

insert into sharesdata (symbol, name, current, chg, percent, high, low, open, last_close, limit_up, limit_down)
values ('SH600000', '浦發(fā)銀行', 10.46, -0.04, -0.38, 10.57, 10.44, 10.57, 10.5, 11.55, 9.45, 38982822, 408921984);

四洼哎、配置mybatis-generator插件

1、pom.xml中plugins標(biāo)簽下加入

    <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.5</version>
        <configuration>
            <!-- 在控制臺打印執(zhí)行日志 -->
            <verbose>true</verbose>
            <!-- 重復(fù)生成時會覆蓋之前的文件-->
            <overwrite>true</overwrite>
            <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
        </configuration>
        <!-- 數(shù)據(jù)庫連接選擇8.0以上的窑邦,因?yàn)橛玫膍ysql8.0壕探,這里一定要加,雖然上面依賴?yán)镆呀?jīng)有了-->
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.15</version>
            </dependency>
        </dependencies>
    </plugin>

2瞧筛、跟啟動類Application同級导盅,創(chuàng)建4個目錄:controllerservice乍炉,mapper滤馍,entity,在resources下新建mapper文件夾

3巢株、添加配置
resources下新建generatorConfig.xml,最下方table標(biāo)簽注意改表名和實(shí)體類名困檩,內(nèi)容:

<?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>
    <!--導(dǎo)入配置文件-->
    <properties resource="mybatisGeneratorinit.properties"/>

    <!-- 一個數(shù)據(jù)庫一個context -->
    <context id="default">

        <!-- 注釋生成設(shè)置 -->
        <commentGenerator>
            <!-- 是否生成注釋代時間戳-->
            <property name="suppressDate" value="true"/>
            <!-- 是否取消注釋 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--jdbc的數(shù)據(jù)庫連接-->
        <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}"
                        userId="${jdbc_user}" password="${jdbc_password}">
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>

        <!-- 類型轉(zhuǎn)換 -->
        <javaTypeResolver>
            <!-- 是否使用bigDecimal悼沿, false可自動轉(zhuǎn)化以下類型(Long, Integer, Short, etc.) -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- targetPackage:生成的實(shí)體類所在的包 -->
        <!-- targetProject:生成的實(shí)體類所在的硬盤位置 -->
        <javaModelGenerator targetPackage="${location_entity}" targetProject="src/main/java">
            <!-- 是否允許子包 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否對modal添加構(gòu)造函數(shù) -->
            <property name="constructorBased" value="true"/>
            <!-- 是否清理從數(shù)據(jù)庫中查詢出的字符串左右兩邊的空白字符 -->
            <property name="trimStrings" value="true"/>
            <!-- 建立modal對象是否不可改變 即生成的modal對象不會有setter方法骚灸,只有構(gòu)造方法 -->
            <property name="immutable" value="false"/>
        </javaModelGenerator>

        <!-- targetPackage 和 targetProject:生成的  mapper xml 文件的包和位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <!-- 是否在當(dāng)前路徑下新加一層schema,ex:false路徑com.qikegu.demo.model逢唤, com.qikegu.demo.model.[schemaName] -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否針對string類型的字段在set的時候進(jìn)行trim調(diào)用 -->
            <property name="trimStrings" value="true"/>
        </sqlMapGenerator>

        <!-- targetPackage 和  targetProject:生成的  java interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="${location_mapper}"
                             targetProject="src/main/java">
            <!-- 是否在當(dāng)前路徑下新加一層schema,ex:false路徑com.qikegu.demo.model, com.qikegu.demo.model.[schemaName] -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- 配置表信息 -->
        <!-- schema即為數(shù)據(jù)庫名 tableName為對應(yīng)的數(shù)據(jù)庫表 domainObjectName是要生成的實(shí)體類 enable*ByExample, 是否生成 example類   -->
        <!-- 不同的表魔慷,修改tableName和domainObjectName就可以 -->
        <table tableName="sharesdata" domainObjectName="Share"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

resources下新建mybatisGeneratorinit.properties著恩,內(nèi)容:

#DataSource
#數(shù)據(jù)庫驅(qū)動
jdbc_driver=com.mysql.jdbc.Driver
#數(shù)據(jù)庫鏈接
jdbc_url=jdbc:mysql://localhost:3306/shares?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
#數(shù)據(jù)庫用戶名
jdbc_user=root
#數(shù)據(jù)庫密碼
jdbc_password=123456
#生成類位置
location_entity=com.yzyfdf.shares.entity
location_mapper=com.yzyfdf.shares.mapper

application.yml中添加:

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/db_test1?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.yzyfdf.shares.entity

4、運(yùn)行插件
右側(cè)Maven - 展開Plugins - mybatis-genertor邀摆,雙擊mybatis-generator:generate,等待編譯施逾,出現(xiàn)下面的就成功了

[INFO] Saving file ShareMapper.xml
[INFO] Saving file Share.java
[INFO] Saving file ShareMapper.java
[INFO] ---------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ---------------------------------------------
[INFO] Total time:  1.141 s

自動生成了三個文件

五例获、補(bǔ)全代碼

1、給ShareMapper.java類加上@Repository注解
2榨汤、在service下新建ShareService

import com.yzyfdf.shares.entity.Share;
import com.yzyfdf.shares.mapper.ShareMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ShareService {

    @Autowired
    ShareMapper shareMapper;

    public Share getShareById(int id) {
        return shareMapper.selectByPrimaryKey(id);
    }
}

3收壕、在controller下新建ShareController

import com.yzyfdf.shares.entity.Share;
import com.yzyfdf.shares.service.ShareService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/shares")
public class ShareController {
    
    @Autowired
    private ShareService shareService;

    @RequestMapping("/{id}")
    public Share getShare(@PathVariable int id) {
        return shareService.getShareById(id);
    }
}

4、給啟動類加上注解@MapperScan("com.yzyfdf.shares.mapper")

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

@MapperScan("com.yzyfdf.shares.mapper")
@SpringBootApplication
public class SharesApplication {

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

}

5虫埂、在application.yml中加上端口

server:
  port: 8015

六端壳、啟動

1枪蘑、在啟動類右鍵,選擇Run照捡,等待啟動完
2话侧、在瀏覽器輸入http://localhost:8015/shares/1,就能看到數(shù)據(jù)了

七瞻鹏、分環(huán)境配置

1、application.ymldatasource部分放入application-dev.yml
2薪夕、再創(chuàng)建一個application-prod.yml赫悄,內(nèi)容同application-dev.yml馏慨,用戶名密碼自行修改
3姑隅、application.yml中加入

spring:
  profiles:
    active: prod

修改active改變環(huán)境

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市慕趴,隨后出現(xiàn)的幾起案子鄙陡,更是在濱河造成了極大的恐慌,老刑警劉巖柔吼,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愈魏,死亡現(xiàn)場離奇詭異,居然都是意外死亡培漏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門畸悬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珊佣,“玉大人,你說我怎么就攤上這事冷冗』笸В” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵思灌,是天一觀的道長恭取。 經(jīng)常有香客問我,道長秽荤,這世上最難降的妖魔是什么柠横? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任课兄,我火速辦了婚禮,結(jié)果婚禮上搬俊,老公的妹妹穿的比我還像新娘蜒茄。我一直安慰自己,他們只是感情好檀葛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布屿聋。 她就那樣靜靜地躺著,像睡著了一般润讥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撮慨,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天脆粥,我揣著相機(jī)與錄音,去河邊找鬼抚吠。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喊式。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼夏哭,長吁一口氣:“原來是場噩夢啊……” “哼献联!你這毒婦竟也來了何址?” 一聲冷哼從身側(cè)響起进胯,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤胁镐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盯漂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帖渠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年竭宰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渣淳。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡伴箩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出棺蛛,到底是詐尸還是另有隱情巩步,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布椅野,位于F島的核電站,受9級特大地震影響离福,放射性物質(zhì)發(fā)生泄漏炼蛤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一絮识、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧次舌,春花似錦、人聲如沸鲜屏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酱吝。三九已至,卻和暖如春务热,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捆毫。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工冲甘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人濒憋。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓陶夜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親条辟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345