springBoot詳細(xì)講解使用mybaties案例
首先創(chuàng)建springBoot項(xiàng)目,jdk選擇1.8
然后倒入mybaties的相關(guān)依賴
我們用的springBoot,當(dāng)然spring全家桶里面含有mybaties,所以我們直接使用升級版的mybaties-plus。
引入這3個(gè)
lombok省的我每次創(chuàng)建對象,都需要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)
接下來我們需要一個(gè)SqlSessionFactory,去解析一個(gè)個(gè)sql.xml。
而sqlSessionFactory,由SqlSessionFactoryBuilder 構(gòu)建,構(gòu)建一個(gè)SqlSessionFactoryBuilder ,需要鏈接mysql的賬號密碼地址。所以要讀取你的賬號密碼,那在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包,用來與mysql做相關(guān)映射,我在里面創(chuàng)建了一個(gè)實(shí)體類,與數(shù)據(jù)庫做映射
@Data的就是我第一次導(dǎo)入的那個(gè)包,能夠自動(dòng)通過@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è)類,否則會出現(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); } }
測試:
到此這篇關(guān)于springBoot詳細(xì)講解使用mybaties案例的文章就介紹到這了,更多相關(guān)springBoot mybaties內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java、springboot?接口導(dǎo)出txt方式
這篇文章主要介紹了java、springboot?接口導(dǎo)出txt方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01java selenium Selenium IDE介紹及用法
本文主要介紹java selenium Selenium IDE,這里整理了相關(guān)資料和介紹如何安裝 Selenium IDE和使用方法,有需要的小伙伴可以參考下2016-08-08SpringCloud使用Ribbon實(shí)現(xiàn)負(fù)載均衡的流程步驟
在微服務(wù)架構(gòu)中,負(fù)載均衡是一項(xiàng)關(guān)鍵的技術(shù),它可以確保各個(gè)服務(wù)節(jié)點(diǎn)間的負(fù)載分布均勻,提高整個(gè)系統(tǒng)的穩(wěn)定性和性能,Spring Cloud 中的 Ribbon 就是一種負(fù)載均衡的解決方案,本文將深入探討 Ribbon 的原理和在微服務(wù)中的應(yīng)用,需要的朋友可以參考下2024-02-02IKAnalyzer結(jié)合Lucene實(shí)現(xiàn)中文分詞(示例講解)
下面小編就為大家?guī)硪黄狪KAnalyzer結(jié)合Lucene實(shí)現(xiàn)中文分詞(示例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10SpringCloud Alibaba 基本開發(fā)框架搭建過程
這篇文章主要介紹了SpringCloud Alibaba 基本開發(fā)框架搭建過程,開發(fā)工具選用的idea,本文通過圖文實(shí)例相結(jié)合給大家分享搭建全過程,需要的朋友可以參考下2021-06-06springboot2.3 整合mybatis-plus 高級功能(圖文詳解)
這篇文章主要介紹了springboot2.3 整合mybatis-plus 高級功能,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08SpringCloud超詳細(xì)講解Feign聲明式服務(wù)調(diào)用
Feign可以把Rest的請求進(jìn)行隱藏,偽裝成類似Spring?MVC的Controller一樣。不用再自己拼接url,拼接參數(shù)等等操作,一切都交給Feign去做2022-06-06深入了解Spring中最常用的11個(gè)擴(kuò)展點(diǎn)
我們一說到spring,可能第一個(gè)想到的是?IOC(控制反轉(zhuǎn))?和?AOP(面向切面編程)。除此之外,我們在使用spring的過程中,有沒有發(fā)現(xiàn)它的擴(kuò)展能力非常強(qiáng)。今天就來跟大家一起聊聊,在Spring中最常用的11個(gè)擴(kuò)展點(diǎn)2022-09-09