看了好多網上文章大概都是使用jdbc,jpa,鏈接oracle,感受真心不是很友好,故知識追尋者在這邊提供了一篇較爲簡單的配置方式,以供初學者學習!本篇文章主要是講如何使用mybatis+oracle+springboot+druid集成,實現簡單的查詢,會查詢固然其餘操做很簡單,入門級!mysql
依賴文件引入oracle.ojdbc6驅動能夠在maven中央倉庫直接下載到, mybatis-boot-start用於配置mybatis, start-test用於測試,druid鏈接池。web
<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全類名須要與四節的sql映射器的命名空間對應spring
@Repository @Mapper public interface AddresseeSupervisionMapper { List<Map> getAddresseeSupervision(); }
sql 的映射文件在resource 目錄下的子目錄 mapper中;因爲數據庫數據量很大這邊使用 行號 rownum
限制查第一條數據。sql
<?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); } }
druid數據源配置以下,注意測試的sql語句 SELECT 1 FROM DUAL
不能寫 select 1
, 由於 oracle有虛表的說法。一般的mysql沒有。mybtis的classpath配置路徑就是第四節mapper文件位置,通配符*表示匹配全部。配置文件中的Ip地址,用戶名,密碼根據讀者自行配置。springboot
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注入時會報空異常。mybatis
@SpringBootTest @RunWith(SpringRunner.class) @Component public class AppTest { @Autowired AddresseeSupervisionMapper addresseeSupervisionMapper; @Test public void test(){ System.out.println(addresseeSupervisionMapper.getAddresseeSupervision()); } }
數據不方便展現,只查詢一條結果以下oracle
[{ADDRESSEE_CD=ff808081413fe46701413fe9206a0015, IS_ADD=1, DECLARAN..................