最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springBoot詳細(xì)講解使用mybaties案例

 更新時(shí)間:2022年05月27日 08:36:05   作者:我要用代碼向我喜歡的女孩表白  
MyBatis本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由apache software foundation遷移到了google code,并且改名為MyBatis。2013年11月遷移到Github。iBATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架

首先創(chuàng)建springBoot項(xiàng)目,jdk選擇1.8

然后倒入mybaties的相關(guān)依賴

我們用的springBoot,當(dāng)然spring全家桶里面含有mybaties,所以我們直接使用升級(jí)版的mybaties-plus。

引入這3個(gè)

lombok省的我每次創(chuàng)建對(duì)象,都需要get、set方法,以及toString

(IDEA里面也要安裝lombok插件-》file->setting->plugin->搜索lombok安裝,完后重啟idea,這樣lombok在idea中不報(bào)錯(cuò))

mybatis-plus,mybaties的相關(guān)jar

mysql-connector-java 基本的jdbc驅(qū)動(dòng)鏈接mysql,mybatis也要依賴他

	<properties>
		<java.version>1.8</java.version>
		<mybatis-plus.version>3.4.2</mybatis-plus.version>
	</properties>
    <dependency>
		<groupId>com.baomidou</groupId>
		<artifactId>mybatis-plus-boot-starter</artifactId>
		<version>${mybatis-plus.version}</version>
	</dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.4</version>
			<scope>provided</scope>
		</dependency>

然后像我這樣,假設(shè)我們要搭建一個(gè)非常2的大工程,建立這幾個(gè)目錄和文件

controller->TestController.java(class)

mapper->TestMapper.java(interface)

service->impl->TestServiceImpl.java(class)

service->TestService.java(interface)

resources->mapper->TestMapper.xml(映射xml)

接下來(lái)我們需要一個(gè)SqlSessionFactory,去解析一個(gè)個(gè)sql.xml。

而sqlSessionFactory,由SqlSessionFactoryBuilder 構(gòu)建,構(gòu)建一個(gè)SqlSessionFactoryBuilder ,需要鏈接mysql的賬號(hào)密碼地址。所以要讀取你的賬號(hào)密碼,那在resource目錄下創(chuàng)建一個(gè)xml用于他去讀取。

我在resources下的mapper里面創(chuàng)建一個(gè)mybaties-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="192.168.19.88"/>
                <property name="username" value="m11"/>
                <property name="password" value="m11@2022"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/TestMapper.xml"/>
    </mappers>
</configuration>

創(chuàng)建一個(gè)domain包,用來(lái)與mysql做相關(guān)映射,我在里面創(chuàng)建了一個(gè)實(shí)體類,與數(shù)據(jù)庫(kù)做映射

@Data的就是我第一次導(dǎo)入的那個(gè)包,能夠自動(dòng)通過(guò)@Data注解,生成這個(gè)實(shí)體類的get、set方法以及toString方法。

package com.example.demo.domain;
import lombok.Data;
@Data
public class BZGG {
    String req_date;
    String stock_code;
    String stock_name;
    double fNextIncrease;
    double fNextAvgIncrease;
    String updatetime;
    public BZGG(String req_date, String stock_code, String stock_name, double fNextIncrease, double fNextAvgIncrease, String updatetime) {
        this.req_date = req_date;
        this.stock_code = stock_code;
        this.stock_name = stock_name;
        this.fNextIncrease = fNextIncrease;
        this.fNextAvgIncrease = fNextAvgIncrease;
        this.updatetime = updatetime;
    }
    public BZGG() {
    }
}

在mapper中的TestMapper中編寫一個(gè)地址,并且加上Mapper映射

package com.example.demo.mapper;
import com.example.demo.domain.BZGG;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface TestMapper {
    List<BZGG> getBZGGonTime(String req_date);
}

mybaties的代碼流程圖

resources中的sql配置(TestMapper.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.TestMapper">
    <select id="getBZGGonTime" resultType="com.example.demo.domain.BZGG">
        select * from   db_guoyuan.t_longhubang_stock_bzgg where req_date = #{req_date}
    </select>
</mapper>

controller層代碼(你到時(shí)候可以自己分離service),為了突出mybaties暫時(shí)寫到一起了

package com.example.demo.controller;
import com.example.demo.domain.BZGG;
import com.example.demo.mapper.TestMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
@RestController
public class TestController {
    @RequestMapping(value = "/Test", method = RequestMethod.GET)
    @ResponseBody
    public String getDemo(@RequestParam("num") int i) {
        String resource = "mapper/mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        TestMapper mapper = sqlSession.getMapper(TestMapper.class);
        List<BZGG> bzgGonTime = mapper.getBZGGonTime("2022-04-08");
        return bzgGonTime.toString();
    }
}

另外SpringApplication啟動(dòng)類,因?yàn)閷?dǎo)入了mybaties,所以要啟動(dòng)時(shí)加載某個(gè)類,否則會(huì)出現(xiàn)url找不到等錯(cuò)誤。

將@springBootApplication改成下面的

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class })
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
//在啟動(dòng)類的@SpringBootApplication加上
//避免沖突,加入exclude
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class })
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

測(cè)試:

到此這篇關(guān)于springBoot詳細(xì)講解使用mybaties案例的文章就介紹到這了,更多相關(guān)springBoot mybaties內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java多線程實(shí)現(xiàn)FTP批量上傳文件

    Java多線程實(shí)現(xiàn)FTP批量上傳文件

    這篇文章主要為大家詳細(xì)介紹了Java多線程實(shí)現(xiàn)FTP批量上傳文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • SpringMVC視圖作用詳解

    SpringMVC視圖作用詳解

    這篇文章主要介紹了springMVC中的視圖與視圖解析器,springMVC視圖的種類很多,默認(rèn)有轉(zhuǎn)發(fā)視圖和重定向視圖,本文就每一種視圖給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-11-11
  • FF瀏覽器和IE下載文件亂碼問(wèn)題的解決方法

    FF瀏覽器和IE下載文件亂碼問(wèn)題的解決方法

    大家可以看到如下截圖,下載文件出現(xiàn)了亂碼,在其他瀏覽器(IE,Chrome....)上沒(méi)有出現(xiàn)這個(gè)問(wèn)題,解決方法很簡(jiǎn)單,遇到類似問(wèn)題的朋友可以了解下哦
    2013-08-08
  • SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)Derby的實(shí)踐

    SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)Derby的實(shí)踐

    像H2、hsqldb、derby、sqlite這樣的內(nèi)存數(shù)據(jù)庫(kù),小巧可愛(ài),做小型服務(wù)端演示程序,非常好用。最大特點(diǎn)就是不需要你另外安裝一個(gè)數(shù)據(jù)庫(kù)。本文主要介紹了SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)Derby,感興趣的可以了解一下
    2021-09-09
  • java使用jacob實(shí)現(xiàn)word轉(zhuǎn)pdf

    java使用jacob實(shí)現(xiàn)word轉(zhuǎn)pdf

    這篇文章主要為大家詳細(xì)介紹了java使用jacob實(shí)現(xiàn)word轉(zhuǎn)pdf,通過(guò)調(diào)用模板文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • java中的類型自動(dòng)轉(zhuǎn)換機(jī)制解析

    java中的類型自動(dòng)轉(zhuǎn)換機(jī)制解析

    這篇文章主要介紹了java中的類型自動(dòng)轉(zhuǎn)換機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • mybatis-plus的selectById(或者selectOne)在根據(jù)主鍵ID查詢實(shí)體對(duì)象的時(shí)候偶爾會(huì)出現(xiàn)null的問(wèn)題記錄

    mybatis-plus的selectById(或者selectOne)在根據(jù)主鍵ID查詢實(shí)體對(duì)象的時(shí)候偶爾會(huì)出現(xiàn)nul

    這篇文章主要介紹了mybatis-plus的selectById(或者selectOne)在根據(jù)主鍵ID查詢實(shí)體對(duì)象的時(shí)候偶爾會(huì)出現(xiàn)null的問(wèn)題記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Maven構(gòu)建生命周期詳細(xì)介紹

    Maven構(gòu)建生命周期詳細(xì)介紹

    這篇文章主要介紹了Maven構(gòu)建生命周期詳細(xì)介紹,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下。
    2017-11-11
  • 解決DataOutputStream亂碼的問(wèn)題

    解決DataOutputStream亂碼的問(wèn)題

    這篇文章主要介紹了DataOutputStream亂碼問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Scala之Object的具體使用(小結(jié))

    Scala之Object的具體使用(小結(jié))

    這篇文章主要介紹了Scala之Object的具體使用(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

西乌珠穆沁旗| 米林县| 股票| 台湾省| 嫩江县| 靖江市| 浙江省| 繁峙县| 土默特右旗| 凭祥市| 磐安县| 新巴尔虎右旗| 博野县| 黔西县| 台江县| 广昌县| 台安县| 琼海市| 辉县市| 新丰县| 大邑县| 保山市| 太和县| 邵东县| 南木林县| 钦州市| 噶尔县| 缙云县| 南靖县| 台北市| 彰化市| 舟山市| 铁岭县| 武山县| 楚雄市| 横峰县| 安国市| 武山县| 辽阳县| 新民市| 柳江县|