zoukankan      html  css  js  c++  java
  • 【SpringBoot/MyBatis/Oracle】如何在SpringBoot工程中配置编撰一个访问Oracle数据库的MyBatis

    本文例程下载:https://files.cnblogs.com/files/heyang78/myBank_mybatis_oracle_junit_210905_1453.rar

    本文涉及到的Oracle版本:11.2.0.1.0,SpringBoot版本:2.5.4,MyBatis选择SpringBoot提供的2.2.0,不保证下例在其它版本中运转正常。

    下面是正文:

    第一步:在pom.xml中添加对MyBatis/Oracle的依赖:

            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.2.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.oracle.database.nls</groupId>
                <artifactId>orai18n</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.oracle.database.jdbc</groupId>
                <artifactId>ojdbc8</artifactId>
                <scope>runtime</scope>
            </dependency>

    以上第一个为mybatis的,下面两个为Oracle的。

    第二步:撰写与数据库student表对应的实体类:

    student表包括id和name两个字段,那么要访问这个表必须撰写一个实体类不可,代码也很简单。

    package com.hy.mybank.Entity;
    
    /**
     * 和Test表对应的实体类
     * @author ufo
     *
     */
    public class Student {
        private int id;
        private String name;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    这个类不需要无参构造函数。

    第三步:撰写访问数据表的核心Mapper。

    package com.hy.mybank.mapper;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;
    
    import com.hy.mybank.Entity.Student;
    
    @Mapper
    public interface StudentMapper {
        @Select("select * from student where id=#{id}")
        Student findById(@Param("id") int id);
        
        @Select("select * from student")
        List<Student> findAll();
    }

    需要注意的是,这个类是接口,如果把它写成了class会出现This method requires a body instead of a semicolon(这个方法需要一个方法体而不是一个分号)的错误,如果遇到了就把class改成interface就行了。 

    第四步:测试

    有了Mapper,我们在测试类里注入它,然后测试它就行了。

    package com.hy.mybank;
    
    import static org.junit.jupiter.api.Assertions.assertEquals;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.junit.jupiter.api.Test;
    import org.springframework.boot.test.context.SpringBootTest;
    
    import com.hy.mybank.Entity.Student;
    import com.hy.mybank.mapper.StudentMapper;
    
    @SpringBootTest
    class MyBankApplicationTests {
        @Resource
        private StudentMapper stuMapper=null;
        
        @Test
        void contextLoads() {
        }
    
        @Test
        void test01_findById() {
            Student stu=stuMapper.findById(1);
            assertEquals("Andy", stu.getName());
        }
        
        @Test
        void test02_findAll() {
            List<Student> ls=stuMapper.findAll();
            assertEquals(2, ls.size());
        }
    }

    如果测试通过,就证明程序到Oracle的MyBatis通道打通了。

    前作:https://www.cnblogs.com/heyang78/p/12793648.html

    -END-

  • 相关阅读:
    POJ 2155 Matrix(二维树状数组)
    HDU 1280 前m大的数
    HDU 3183 A Magic Lamp(二维RMQ)
    HDU 3743 Frosh Week(归并排序求逆序数)
    POJ 2299 Ultra-QuickSort ( 归并排序 + 求逆序数 )
    HDU 1166 敌兵布阵(树状数组)
    HDU 2846 Repository(字典树)
    HDU 1896 Stones(优先队列)
    HDU 4393 Throw nails(优先队列)
    进程池
  • 原文地址:https://www.cnblogs.com/heyang78/p/15229609.html
Copyright © 2011-2022 走看看