看了好多网上文章大概都是使用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..................