springBoot詳細(xì)講解使用mybaties案例
首先創(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)

接下來我們需要一個(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包,用來與mysql做相關(guān)映射,我在里面創(chuàng)建了一個(gè)實(shí)體類,與數(shù)據(jù)庫(kù)做映射
@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è)類,否則會(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)文章
SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)Derby的實(shí)踐
像H2、hsqldb、derby、sqlite這樣的內(nèi)存數(shù)據(jù)庫(kù),小巧可愛,做小型服務(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
這篇文章主要為大家詳細(xì)介紹了java使用jacob實(shí)現(xiàn)word轉(zhuǎn)pdf,通過調(diào)用模板文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
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)nul
這篇文章主要介紹了mybatis-plus的selectById(或者selectOne)在根據(jù)主鍵ID查詢實(shí)體對(duì)象的時(shí)候偶爾會(huì)出現(xiàn)null的問題記錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

