zoukankan      html  css  js  c++  java
  • springboot+mybatis+oracle+druid入门原来很简单

    一 前言

    看了好多网上文章大概都是使用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..................
    
  • 相关阅读:
    jstl核心标签库
    乱码的解决
    eclipse 中 Servlet 模板代码(其实是代码提示模板)
    因为最近一直在和数据库打交道,所以做了几个小封装
    意外发现的大批量导入数据SqlBulkCopy类
    Http相关
    Tomcat相关
    对于反射中的invoke()方法的理解
    SqlCommandBuilder类是如何构建T-Sql语句
    模拟在内存中的数据库DataSet相关的类
  • 原文地址:https://www.cnblogs.com/zszxz/p/12163733.html
Copyright © 2011-2022 走看看