springBoot詳細講解使用mybaties案例
首先創(chuàng)建springBoot項目,jdk選擇1.8
然后倒入mybaties的相關依賴
我們用的springBoot,當然spring全家桶里面含有mybaties,所以我們直接使用升級版的mybaties-plus。
引入這3個
lombok省的我每次創(chuàng)建對象,都需要get、set方法,以及toString
(IDEA里面也要安裝lombok插件-》file->setting->plugin->搜索lombok安裝,完后重啟idea,這樣lombok在idea中不報錯)
mybatis-plus,mybaties的相關jar
mysql-connector-java 基本的jdbc驅(qū)動鏈接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>
然后像我這樣,假設我們要搭建一個非常2的大工程,建立這幾個目錄和文件
controller->TestController.java(class)
mapper->TestMapper.java(interface)
service->impl->TestServiceImpl.java(class)
service->TestService.java(interface)
resources->mapper->TestMapper.xml(映射xml)
接下來我們需要一個SqlSessionFactory,去解析一個個sql.xml。
而sqlSessionFactory,由SqlSessionFactoryBuilder 構建,構建一個SqlSessionFactoryBuilder ,需要鏈接mysql的賬號密碼地址。所以要讀取你的賬號密碼,那在resource目錄下創(chuàng)建一個xml用于他去讀取。
我在resources下的mapper里面創(chuàng)建一個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)建一個domain包,用來與mysql做相關映射,我在里面創(chuàng)建了一個實體類,與數(shù)據(jù)庫做映射
@Data的就是我第一次導入的那個包,能夠自動通過@Data注解,生成這個實體類的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中編寫一個地址,并且加上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層代碼(你到時候可以自己分離service),為了突出mybaties暫時寫到一起了
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啟動類,因為導入了mybaties,所以要啟動時加載某個類,否則會出現(xiàn)url找不到等錯誤。
將@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; //在啟動類的@SpringBootApplication加上 //避免沖突,加入exclude @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class }) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
測試:
到此這篇關于springBoot詳細講解使用mybaties案例的文章就介紹到這了,更多相關springBoot mybaties內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java selenium Selenium IDE介紹及用法
本文主要介紹java selenium Selenium IDE,這里整理了相關資料和介紹如何安裝 Selenium IDE和使用方法,有需要的小伙伴可以參考下2016-08-08SpringCloud使用Ribbon實現(xiàn)負載均衡的流程步驟
在微服務架構中,負載均衡是一項關鍵的技術,它可以確保各個服務節(jié)點間的負載分布均勻,提高整個系統(tǒng)的穩(wěn)定性和性能,Spring Cloud 中的 Ribbon 就是一種負載均衡的解決方案,本文將深入探討 Ribbon 的原理和在微服務中的應用,需要的朋友可以參考下2024-02-02IKAnalyzer結合Lucene實現(xiàn)中文分詞(示例講解)
下面小編就為大家?guī)硪黄狪KAnalyzer結合Lucene實現(xiàn)中文分詞(示例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10SpringCloud Alibaba 基本開發(fā)框架搭建過程
這篇文章主要介紹了SpringCloud Alibaba 基本開發(fā)框架搭建過程,開發(fā)工具選用的idea,本文通過圖文實例相結合給大家分享搭建全過程,需要的朋友可以參考下2021-06-06springboot2.3 整合mybatis-plus 高級功能(圖文詳解)
這篇文章主要介紹了springboot2.3 整合mybatis-plus 高級功能,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08SpringCloud超詳細講解Feign聲明式服務調(diào)用
Feign可以把Rest的請求進行隱藏,偽裝成類似Spring?MVC的Controller一樣。不用再自己拼接url,拼接參數(shù)等等操作,一切都交給Feign去做2022-06-06