一 前言
看了好多网上文章大概都是使用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..................
转载:https://blog.csdn.net/youku1327/article/details/103880358
查看评论