一 前言
看了好多網上文章大概都是使用jdbc,jpa,連接oracle,感覺真心不是很友好,故知識追尋者在這邊提供了一篇較為簡單的配置方式,以供初學者學習!本篇文章主要是講如何使用mybatis+oracle+springboot+druid集成,實現簡單的查詢,會查詢當然其他操作很簡單,入門級!
二 pom.xml
依賴文件引入oracle.ojdbc6驅動可以在maven中央倉庫直接下載到, mybatis-boot-start用於配置mybatis, start-test用於測試,druid連接池。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!-- oracle jdbc 插件 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
</dependencies>
三 mapper
mapper全類名需要與四節的sql映射器的命名空間對應
@Repository
@Mapper
public interface AddresseeSupervisionMapper {
List<Map> getAddresseeSupervision();
}
四 sql映射器
sql 的映射文件在resource 目錄下的子目錄 mapper中;由於數據庫數據量很大這邊使用 行號 rownum
限制查第一條數據。
<?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.zszxz.sync.mapper.AddresseeSupervisionMapper">
<select id="getAddresseeSupervision" resultType="map">
select * from sp_addressee_supervision where rownum=1
</select>
</mapper>
五 啟動類
啟動類@SpringBootApplication表示springboot的應用。
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
六 application.yml
druid數據源配置如下,注意測試的sql語句 SELECT 1 FROM DUAL
不能寫 select 1
, 因為 oracle有虛表的說法。通常的mysql沒有。mybtis的classpath配置路徑就是第四節mapper文件位置,通配符*表示匹配所有。配置文件中的Ip地址,用戶名,密碼根據讀者自行配置。
spring:
#數據庫配置
datasource:
driverClassName: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@ip:1521:orcl
username:
password:
druid:
#初始化連接大小
initial-size: 3
#最小空閑連接數
min-idle: 2
#最大連接數
max-active: 20
validationQuery: SELECT 1 FROM DUAL
filters: stat
test-while-idle: true
test-on-borrow: true
test-on-return: false
max-wait: 30000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 30000
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
call-setters-on-nulls: true
map-underscore-to-camel-case: true
七 測試
注意點是要在類上加@Component注解,表示spring的組件類,在spring IOC 容器啟動時會掃描注入,否則mapper注入時會報空異常。
@SpringBootTest
@RunWith(SpringRunner.class)
@Component
public class AppTest {
@Autowired
AddresseeSupervisionMapper addresseeSupervisionMapper;
@Test
public void test(){
System.out.println(addresseeSupervisionMapper.getAddresseeSupervision());
}
}
八 執行結果
數據不方便展示,只查詢一條結果如下
[{ADDRESSEE_CD=ff808081413fe46701413fe9206a0015, IS_ADD=1, DECLARAN..................
本套教程
- springboot入門 (1)
- Springboot自定義banner(2)
- springboot配置文件解析(3)
- springboot集成mybatis(4)
- springboot集成jdbcTemplate(5)
- spingboot單元測試(6)
- springboot集成thymeleaf(7)
- springboot多文件上傳(8)
- springboot文件下載(9)
- Springboot自定義異常類(10)
- springboot多環境配置(11)
- springboot自動配置原理解析(12)
- springboot集成restTemplate接口調用(13)
- springboot集成任務調度(14)
- springboot跨域CORS處理(15)
- springboot開啟GIZP壓縮(16)
- springboot集成logback(17)
- springboot集成Swagger(18)
- springboot集成actuator后台監控(19)
- springboot集成mybatis+oracle+druid(20)
- springboot 集成springsession(21)
- springboot集成jwt(22)
- springboot集成admin后台監控(23)
- springboot集成redis基礎篇(24)
- springboot集成redis緩存篇(25)
- springboot使用AOP日志攔截(26)
- springboot集成Validation參數校驗(27)
- springboot集成mybatisPlus(28)
- springboot集成shiro(29)
- springboot實現接口等冪次校驗(30)
- springboot-集成WebSockets(31)
- restTemplate源碼解析(32)
- SpringBoot使用@Async異步調用與線程池(33)
- 待續